我有以下json对象样本,即:
{"id":"value1" , "time":"valuetime1"}
{"id":"value2" , "time":"valuetime2"}
{"id":"value3" , "time":"valuetime3"}
{"id":"value4" , "time":"valuetime4"}
{"id":"value5" , "time":"valuetime5"}
{"id":"value6" , "time":"valuetime6"}
{"id":"value7" , "time":"valuetime7"}
{"id":"value8" , "time":"valuetime8"}
基于以上所述,我想将所有这些json对象添加到一个数组中,然后我可以处理和访问每个json对象的数组,并将time1值与time1值一起提取等等。
我相信我必须使用 JSON.parse ,但不确定如何首先将这些对象添加到数组中,然后还能够解析和访问每个对象的数据。
将上面的每一行视为一个单独的JSON对象,我想将其添加到已解析的数组中。
答案 0 :(得分:0)
答案 1 :(得分:0)
这不是有效的JSON,所以JSON.parse不起作用,但假设你有一个字符串变量中的文本,你可以用以下内容将它转换为JSON:
data = "[" + data.replace(/\}/g, "},").replace(/,$/,"") + "]";
然后解析它。
更新:
var array = [];
// for each input line
var obj = JSON.parse(line);
array.push(obj);
var id = obj.id;
var time = obj.time;
...
答案 2 :(得分:-1)
感谢回复,但我相信我已经设法解决了我自己的问题。
此外,作为@Mr。上面提到的白色,我确实错误地将我的属性名称排除了 - 感谢。
使用上面的数据,我所追求的是以下内容:
<强>已更新强>
var s = '{"id":"value1","time":"valuetime1"},{"id":"value2","time":"valuetime2"},{"id":"value3","time":"valuetime3"},{"id":"value4","time":"valuetime4"},{"id":"value5","time":"valuetime5"}, {"id":"value6","time":"valuetime6"},{"id":"value7","time":"valuetime7"},{"id":"value8","time":"valuetime8"}';
var a = JSON.parse('[' + s + ']');
a.forEach(function(item,i){
console.log(item.id + ' - '+ item.time);
});
感谢@torazaburo的提醒 - 更新了我应该早些做的答案。