Javascript js迭代json从json中获取每个字符

Javascript js迭代json从json中获取每个字符,javascript,json,Javascript,Json,我有一个json,我想迭代并从中获取值,设置和一些变量,但我在读取它时遇到了一些问题 这是我的json: {"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]} 每次我尝试迭代时,我都会得到未定义或json中的每个字符,这不是我假装的: 以下是我已经尝试过的: 1) 输出: 0 -> { 1 -> " 2 -> b 3 -> i 4 -> t 5 -> " ... 2) 输出与以前相同 3

我有一个json,我想迭代并从中获取值,设置和一些变量,但我在读取它时遇到了一些问题

这是我的json:

{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}
每次我尝试迭代时,我都会得到未定义或json中的每个字符,这不是我假装的:

以下是我已经尝试过的:

1)

输出:

0 -> {
1 -> "
2 -> b
3 -> i
4 -> t
5 -> "
 ...
2)

输出与以前相同

3

for (var key in objArray) {
      if (objArray.hasOwnProperty(key)) {
        console.log(key + " -> " + objArray[key]);
      }
    }
相同输出

我已经尝试过在另一篇文章中看到的其他迭代器:

我迭代什么,得到81,aaa;83,bbb

提前感谢

JSON.parse()将JSON字符串作为参数并返回JSON对象。 如果json字符串是正确的,这应该可以工作

var key = JSON.parse(objArray);
for (key in objArray) {
  if (objArray.hasOwnProperty(key)) {
    console.log(key + " -> " + objArray[key]);
  }
}

首先,您需要从
JSON.parse
返回值,然后您必须迭代
objArray
bit
数组,因为现在您只查看顶层的键

var objArray='{“bit”:[{“id”:81,“value”:“aaaa”},{“id”:83,“value”:“bbbb”}]}
objArray=JSON.parse(objArray);
for(objArray.bit中的变量位){
for(objArray.bit[bit]中的变量键){
if(objArray.bit[bit].hasOwnProperty(键)){
console.log(key+“->”+objArray.bit[bit][key]);
}
}

}
如果
objArray
是字符串,
JSON.parse
将JSON解析为字符串:

    var output = Object.values(JSON.parse(objArray)["bit"]).map(elt => {
       return elt.id + '->' + elt.value;
    }).join(';');

    console.log(output);
每次我尝试迭代时,我都会得到未定义或json中的每个字符,这不是我假装的

原因:您试图解析的是
JSON字符串
,而不是
JSON对象

演示

var jsonStr='{“bit”:[{“id”:81,“value”:“aaaa”},{“id”:83,“value”:“bbbb”}]};
for(jsonStr中的var键){
if(jsonStr.hasOwnProperty(键)){
console.log(key+“->”+jsonStr[key]);
}

}
在第二个示例中,尝试
objArray=JSON.parse(objArray)
as
JSON.parse()
将返回解析后的值,尽管这只会返回您
“位->[对象对象],[对象对象]”
我这样做时得到[对象对象],[对象对象]
var key = JSON.parse(objArray);
for (key in objArray) {
  if (objArray.hasOwnProperty(key)) {
    console.log(key + " -> " + objArray[key]);
  }
}
    var output = Object.values(JSON.parse(objArray)["bit"]).map(elt => {
       return elt.id + '->' + elt.value;
    }).join(';');

    console.log(output);