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

时间:2017-07-03 08:34:07

标签: javascript json

我有一个json,我想要迭代并从中获取值并设置和一些变量,但我正面临阅读它的一些问题

这是我的json:

{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}

每当我尝试迭代时,我得到未定义或者我从json得到每一个字符,这不是我假装的:

这是我已经尝试过的:

1)

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

输出:

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

2)

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

与之前相同的输出

第3

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

相同的输出

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

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

提前致谢

4 个答案:

答案 0 :(得分:1)

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

var objArray = '{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}'
objArray = JSON.parse(objArray);

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

答案 1 :(得分:0)

如果objArray是一个字符串,JSON.parse会将json解析为字符串:

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

    console.log(output);

答案 2 :(得分:0)

  

每次我尝试迭代我得到未定义或我从json得到每个字符,这不是我假装

原因:您正尝试解析 JSON String 而不是 JSON Object

<强>样本

var jsonStr = '{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}';

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

正确的解决方案:

首先在JSON String方法的帮助下将JSON Object转换为JSON.parse(),然后解析它。

<强>样本

var jsonStr = '{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}';

var jsonObj = JSON.parse(jsonStr);

for (var key in jsonObj) {
      if (jsonObj.hasOwnProperty(key)) {
        console.log(key + " -> " , jsonObj[key]);
      }
    }

答案 3 :(得分:-1)

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

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