首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >js迭代json从json获取每个字符。

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

Stack Overflow用户
提问于 2017-07-03 08:34:06
回答 4查看 1.3K关注 0票数 1

我有一个json,我想要迭代,从它得到值,集合和一些变量,但是我在阅读它时会遇到一些问题

这是我的儿子:

代码语言:javascript
运行
复制
{"bit":[{"id":81,"value":"aaaa"},{"id":83,"value":"bbbb"}]}

每次我试图迭代时,我都没有定义,或者我从json中得到了每个字符,这不是我所假装的:

以下是我已经尝试过的:

1)

代码语言:javascript
运行
复制
   JSON.stringify(objArray);
    for (var key in objArray) {
      if (objArray.hasOwnProperty(key)) {
        console.log(key + " -> " + objArray[key]);
      }
    }

输出:

代码语言:javascript
运行
复制
0 -> {
1 -> "
2 -> b
3 -> i
4 -> t
5 -> "
 ...

2)

代码语言:javascript
运行
复制
JSON.parse(objArray);
for (var key in objArray) {
  if (objArray.hasOwnProperty(key)) {
    console.log(key + " -> " + objArray[key]);
  }
}

和以前一样的输出

3

代码语言:javascript
运行
复制
for (var key in objArray) {
      if (objArray.hasOwnProperty(key)) {
        console.log(key + " -> " + objArray[key]);
      }
    }

同输出

我已经在另一篇文章中看到了其他迭代器:

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

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-03 08:43:04

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

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2017-07-03 08:43:17

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

代码语言:javascript
运行
复制
    var output = Object.values(JSON.parse(objArray)["bit"]).map(elt => {
       return elt.id + '->' + elt.value;
    }).join(';');

    console.log(output);
票数 0
EN

Stack Overflow用户

发布于 2017-07-03 10:05:46

每次我试图迭代时,我都没有定义,或者我从json中得到了每个字符,这不是我假装的。

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

演示

代码语言:javascript
运行
复制
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.parse()转换为JSON Object,然后解析它。

演示

代码语言:javascript
运行
复制
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]);
      }
    }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44881024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档