如何将指定格式的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
相关产品推荐
相关产品推荐

