/** * 测试JSON解析器的修复效果 * * 测试目的:验证中文引号等格式问题是否能被正确处理 */ import { parseJSON } from '../src/common/utils/jsonParser.js'; console.log('\n🧪 JSON解析器修复测试\n'); // 测试用例 const testCases = [ { name: '正常JSON(ASCII引号)', input: '{"conclusion": "exclude", "confidence": 0.95}', expectSuccess: true }, { name: '中文引号JSON', input: '{"conclusion": "exclude", "confidence": 0.95}', expectSuccess: true }, { name: '混合引号JSON', input: '{"conclusion": "exclude", "confidence": 0.95}', expectSuccess: true }, { name: 'JSON代码块(中文引号)', input: `\`\`\`json { "judgment": { "P": "match", "I": "match" }, "conclusion": "include", "confidence": 0.85, "reason": "虽然对照组不是安慰剂,但研究质量高" } \`\`\``, expectSuccess: true }, { name: '带额外文字的JSON', input: `这是筛选结果: \`\`\`json {"conclusion": "exclude", "confidence": 0.90} \`\`\` 以上是我的判断。`, expectSuccess: true }, { name: '全角逗号和冒号', input: '{"conclusion":"exclude","confidence":0.95}', expectSuccess: true }, { name: '不完整的JSON(应失败)', input: '{"conclusion": "exclude", "confidence":', expectSuccess: false }, { name: '非JSON文本(应失败)', input: 'This is not a JSON string at all.', expectSuccess: false }, { name: '复杂嵌套JSON(中文引号)', input: `{ "judgment": { "P": "match", "I": "partial", "C": "mismatch", "S": "match" }, "evidence": { "P": "研究对象为急性缺血性卒中患者", "I": "干预措施为替格瑞洛", "C": "对照组为氯吡格雷而非安慰剂", "S": "随机对照试验" }, "conclusion": "exclude", "confidence": 0.92, "reason": "虽然P、I、S维度匹配,但对照组不符合要求" }`, expectSuccess: true } ]; // 运行测试 let passed = 0; let failed = 0; testCases.forEach((testCase, index) => { console.log(`[测试 ${index + 1}/${testCases.length}] ${testCase.name}`); const result = parseJSON(testCase.input); const success = result.success === testCase.expectSuccess; if (success) { console.log(' ✅ 通过'); if (result.success) { console.log(` 📄 解析结果: ${JSON.stringify(result.data).substring(0, 100)}...`); } passed++; } else { console.log(' ❌ 失败'); console.log(` 期望: ${testCase.expectSuccess ? '成功' : '失败'}`); console.log(` 实际: ${result.success ? '成功' : '失败'}`); if (!result.success) { console.log(` 错误: ${result.error}`); } failed++; } console.log(''); }); // 总结 console.log('='.repeat(60)); console.log('📊 测试总结\n'); console.log(`✅ 通过: ${passed}/${testCases.length}`); console.log(`❌ 失败: ${failed}/${testCases.length}`); console.log(`📈 成功率: ${(passed / testCases.length * 100).toFixed(1)}%`); if (passed === testCases.length) { console.log('\n🎉 所有测试通过!JSON解析器修复成功!'); } else { console.log('\n⚠️ 部分测试失败,需要进一步调试。'); } console.log('='.repeat(60) + '\n');