Javascript 将单个JSON对象添加到数组以进行解析和处理
我有以下json对象示例,即:Javascript 将单个JSON对象添加到数组以进行解析和处理,javascript,arrays,json,Javascript,Arrays,Json,我有以下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":"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对象的数组,并提取id1值和time1值,以此类推
我相信我必须使用JSON.parse,但不确定如何首先将这些对象添加到数组中,然后才能解析和访问每个对象的数据
将上面的每一行视为一个单独的JSON对象,我希望将其添加到已解析的数组中
这不是有效的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;
...
感谢您的回答,但我相信我已经解决了自己的问题 此外,正如上面提到的@Mr.White,我的财产名称有误,我现在已经分类了——谢谢 根据上述数据,我所追求的是以下几点: 已更新
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的提醒-我更新了我的答案,我本应该早做的。问题不清楚。。输入对我来说似乎是错误的…您可以首先使用编辑器或脚本编辑文件,使其成为JSON数组,并且当您确定值的类型为JSON时,可以使用yes JSON.parse为什么要使用id1、id2和time1、time2?属性名通常应该是相同的。我基本上希望获取每个json对象,解析它并将其添加到数组中进行处理。属性名称是不同的b/c它们与数据库表中的不同记录相关。请澄清,这些对象的形式是您正在读取的文件,还是来自某个地方的字符串?或者它们只是你的程序可以使用的常规的旧JS对象,你想把它们放入一个数组中吗?谢谢你的回复,但是把每一行看作一个单独的JSON对象,我只想把它们全部添加到一个数组中。如果您单独获取每一行并通过JSONLint运行它,它将返回为有效。如果这是一个JSON格式的字符串,实际上我不认为它是,那么与其使用字符串算术构造JSON,不如执行
input.split('\n').map(JSON.parse)
。为什么要字符串化然后立即解析?你会得到你开始的东西。另外,在函数中,a[i]
与项
完全相同。