// 调试JSON解析问题 const fs = require('fs'); const path = require('path'); const filePath = path.join(__dirname, 'domain-info', 'domains', 'domain-info.json'); console.log(`正在调试JSON文件: ${filePath}`); console.log('=' .repeat(50)); // 1. 检查文件大小和内容 const stats = fs.statSync(filePath); console.log(`文件大小: ${stats.size} 字节`); const data = fs.readFileSync(filePath, 'utf8'); console.log(`文件内容长度: ${data.length} 字符`); console.log('=' .repeat(50)); // 2. 查找网易公司的位置和结束位置 const neteaseStart = data.indexOf('"网易"'); console.log(`网易公司开始位置: ${neteaseStart}`); // 尝试找到网易公司的结束位置 let neteaseEnd = neteaseStart + 1000; const neteaseEndStr = '},\n\t\t"'; neteaseEnd = data.indexOf(neteaseEndStr, neteaseStart); console.log(`网易公司结束位置: ${neteaseEnd}`); // 3. 查看网易公司结束后的内容 if (neteaseEnd !== -1) { const nextCompany = data.substring(neteaseEnd, neteaseEnd + 50); console.log(`网易公司结束后的内容: ${nextCompany}`); } console.log('=' .repeat(50)); // 4. 解析JSON并查看结果 try { const parsedData = JSON.parse(data); console.log('JSON解析成功!'); if ('domains' in parsedData) { const companies = Object.keys(parsedData.domains); console.log(`解析出的公司数量: ${companies.length}`); console.log(`解析出的公司: ${companies.join(', ')}`); // 查看网易公司的完整数据 if (companies.includes('网易')) { console.log('\n网易公司的数据结构:'); console.log(JSON.stringify(parsedData.domains['网易'], null, 2)); } } } catch (error) { console.error('JSON解析错误:', error); // 显示错误位置附近的内容 if (error instanceof SyntaxError && error.offset) { const errorPos = error.offset; const context = data.substring(Math.max(0, errorPos - 50), errorPos + 50); console.log(`错误位置附近的内容: ${context}`); } } console.log('=' .repeat(50)); // 5. 搜索其他公司 const companiesToCheck = ['搜狗', '高德地图', '奇虎360', '百度']; for (const company of companiesToCheck) { const position = data.indexOf(`"${company}"`); console.log(`${company}在文件中的位置: ${position}`); if (position !== -1) { const context = data.substring(Math.max(0, position - 10), position + 20); console.log(` 上下文: ${context}`); } }