JS迭代JSON得到JSON
问题描述:
每一个角色,我有这个,我想迭代,并从它那里得到的值,并设置一个JSON和一些变数,但我现在面临的一些问题阅读它JS迭代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]);
}
}
的输出结果相同之前
for (var key in objArray) {
if (objArray.hasOwnProperty(key)) {
console.log(key + " -> " + objArray[key]);
}
}
相同输出
我已经尝试过其他的迭代器我看到另一篇文章:
,我怎么遍历和得到81分,AAA; 83,BBB预先
由于
答
首先你需要从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]);
}
}
}
+0
它完美的感谢! – Tazz
答
JSON.parse()
需要JSON字符串作为参数,并返回一个JSON对象。 这应该工作,如果JSON字符串是适当的。
var key = JSON.parse(objArray);
for (key in objArray) {
if (objArray.hasOwnProperty(key)) {
console.log(key + " -> " + objArray[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 String
代替JSON Object
DEMO
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]);
}
}
正确的溶胶ution:
首先转换成JSON String
与JSON Object
方法JSON.parse()
的帮助,然后解析它。
DEMO
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]);
}
}
在您的第二例尝试'objArray = JSON.parse(objArray);''作为JSON.parse()来'将返回解析的值,虽然这只会回报你'“位 - > [目标对象],[目标对象]”' – George
我得到[对象对象],[目标对象]当我做到这一点 – Tazz