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

如何将指定格式的JSON字符串转换为单个JavaScript对象

如何将截断的JSON字符串转换为合法的JavaScript对象?

首先得说明:你提供的JSON字符串是不完整的(比如dt_trend数组里最后一个对象只写了"ser..."就截断了),要转换成JavaScript对象的第一步,是先把JSON补全成语法规范的结构。下面是具体操作步骤:

1. 修复JSON的完整性

JSON语法要求非常严格:所有键值对必须闭合,数组/对象的括号要配对,字符串必须用双引号包裹。你需要把截断的部分补全,比如原dt_trend里的最后一个对象,假设完整内容是{ "score": 50, "gText": "Q1,2018", "seriesName": "Arriving (Trams) - Experience or Observation", "ONUM": 1 },然后把整个数组和外层对象的括号都闭合,得到完整的JSON字符串。

2. 使用JSON.parse()解析为JavaScript对象

当你有了完整合法的JSON字符串后,直接用JavaScript内置的JSON.parse()方法就能把它转换成单个JS对象。

完整示例代码

// 修复后的完整JSON字符串(用反引号包裹支持多行书写)
const jsonString = `{ 
  "dt_total_score": [ 
    { "score": 60.8332, "gText": "Total" }, 
    { "score": 66.6666, "gText": "Call Center" }, 
    { "score": 66.6666, "gText": "Restaurant reservation" }, 
    { "score": 50, "gText": "Arriving (Trams) - Experience or Observation" }, 
    { "score": 60, "gText": "Arrival & Parking Experience" } 
  ], 
  "dt_trend": [ 
    { "score": 60, "gText": "Q1,2018", "seriesName": "Arrival & Parking Experience", "ONUM": 1 }, 
    { "score": 50, "gText": "Q1,2018", "seriesName": "Arriving (Trams) - Experience or Observation", "ONUM": 1 } 
  ] 
}`;

// 将JSON字符串解析为JavaScript对象
const myDataObject = JSON.parse(jsonString);

// 测试访问对象中的属性
console.log('Total得分:', myDataObject.dt_total_score[0].score);
console.log('Q1 2018有轨电车体验得分:', myDataObject.dt_trend[1].score);

额外注意事项

  • 如果JSON里的&是HTML转义后的&符号,你可以在解析前先转回来:
    const decodedJsonString = jsonString.replace(/&/g, '&');
    const myDataObject = JSON.parse(decodedJsonString);
    
  • 如果补全JSON时不确定截断部分的内容,你需要参考原数据的来源(比如接口返回、本地文件)获取完整的JSON内容,否则JSON.parse()会直接抛出语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:24:45