这可能是一个非常简单的问题,但我似乎真的无法让它发挥作用。
我有几个 JSON 行和一个 notes
数组。
使用 notes.push(JSONline)
我假设每个数组位置保存一个 JSON 行,因此采用以下方式:
//notes[1]
{"id":"26","valuee":"20","datee":"2016-04-05T15:15:45.184+0100","id2":51}
//notes[2]
{"id":"27","valuee":"134","datee":"2016-04-05T15:15:47.238+0100","id2":53}
//notes[3]
{"id":"26","valuee":"20","datee":"2016-04-05T15:15:45.184+0100","id2":52}
这是我的问题:我想打印一个特定的属性,例如数组中一个特定 JSON 行的 id。我怎样才能做到这一点?
当我执行 console.log(notes)
时,它会按预期打印所有 JSON 行。但是,如果我执行 console.log(notes[1])
,它会在该位置打印 JSON 行的第一个字符,而不是整行。
同样,console.log(notes[1].id)
不会打印第一个 JSON 行中的 id,实际上它会打印“未定义”。
我做错了什么? 非常感谢。
最佳答案
我建议您在推送笔记时解析所有 json,例如:
notes.push(JSON.parse(JSONLine))
如果你以某种方式执着于在数组中使用 json 字符串而不是对象(我不建议这样做),那么你总是可以在拥有 jsonLine id 后进行解析
JSON.parse(notes[id]).id
基本上,您想对任一解决方案使用 JSON.parse,我强烈建议您从一开始就将它们转换为对象。
关于javascript - 如何从数组中保存在某个位置的 JSON 行访问属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652718/