You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将TXT转JSON后获取Reference值返回undefined,求技术解决

问题分析与修复

你的代码有两个核心问题导致obj.Reference返回undefined:

1. 多余的JSON.stringify()调用

你先把模板字符串用JSON.stringify()转成了JSON格式的字符串(相当于给整个文本套了一层双引号),之后JSON.parse()解析出来的结果还是原始的模板字符串文本,而不是你期望的JavaScript对象。字符串自然没有Reference属性,所以返回undefined。

2. 原始文本不符合JSON语法规范

就算去掉JSON.stringify(),你写的模板字符串也不是合法的JSON,JSON有严格要求:

  • 所有对象键必须用双引号包裹(比如ErrorList要改成"ErrorList",80要改成"80")
  • 字符串值必须用双引号(你用了单引号,这在JS里允许,但JSON不允许)

修复后的代码

// 先把文本改成合法的JSON格式,所有键和字符串值用双引号
const txt = `{
  "ErrorList": [{"80": "Prepared"}],
  "Reference": [
    {
      "Rule Name": "Missing 3",
      "Rule ID": 1,
      "Rule Des": "Did they provide News ?"
    },
    {
      "Rule Name": "Missing Zip",
      "Rule ID": 2,
      "Rule Des": "Is field ?"
    }
  ],
  "Hard Violation": [
    {
      "Violation": 0,
      "Initial Servicer": "BI",
      "Total Confirmed": 0,
      "Last Date": "05/16/2021"
    },
    {
      "Violation": 0,
      "Initial Servicer": "BI",
      "Total Confirmed": 3,
      "Last Date": "12/19/2019"
    }
  ]
}`;

// 直接解析合法的JSON字符串
const obj = JSON.parse(txt);
console.log(obj.Reference); // 现在能正常输出Reference数组了

额外提示

如果你的原始TXT内容就是这种类似JS对象的格式(不是严格JSON),也可以用eval()来解析,但强烈不推荐(存在安全风险),最好还是转换成标准JSON格式再解析。

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:52:17