我有一个json文件,我正试图从中获取值.一个对象嵌套在此文件中的另一个对象中.我可以隔离顶级值,但不能隔离嵌套值.它必须是语法问题.这就是我正在使用的.
这是json:
{
"total": [
[
{
"votes": "79,060"
},
{
"percent": "11%"
},
{
"winner": "0"
}
],
[
{
"votes": "167,800"
},
{
"percent": "22%"
},
{
"winner": "0"
}
],
[
{
"votes": "51,519"
},
{
"percent": "7%"
},
{
"winner": "0"
}
],
[
{
"votes": "297,060"
},
{
"percent": "39%"
},
{
"winner": "1"
}
],
[
{
"votes": "156,787"
},
{
"percent": "21%"
},
{
"winner": "0"
}
]
],
"useWinnerColors": 1,
"timestamp": "3:00 p.m. April 26",
"candidateCount": 5
}
Run Code Online (Sandbox Code Playgroud)
我写的时候:
console.log(json.candidateCount);
Run Code Online (Sandbox Code Playgroud)
我得到了正确的答案(5).
但是当我写道:
console.log(json.total[0][1]);
Run Code Online (Sandbox Code Playgroud)
我得到了对象{percent ="11%"}.
当我写:
console.log(json.total[0].votes);
Run Code Online (Sandbox Code Playgroud)
我得到了不确定.
如何隔离"总计"中的项目值?
你得到的undefined
是因为json.total[0]
它本身就是一个阵列.您需要隔离内部 的特定阵列json.total[0]
.所以,你需要做的是这样json.total[0][0].votes
或json.total[0][1].votes
.
我认为你的JSON更好的结构是这样的:
{"total": [
{
"votes": "79,060"
"percent": "11%"
"winner": "0",
},
...
{
"votes": "156,787",
"percent": "21%",
"winner": "0"
}],
"useWinnerColors": 1,
"timestamp": "3:00 p.m. April 26",
"candidateCount": 5
}
Run Code Online (Sandbox Code Playgroud)
现在你可以做到json.total[0].votes
.
您不需要创建一个数组,其中每个条目都是一个名称 - 值对.您可以直接使用关联数组.
编辑:要遍历关联数组,使用for..in
随hasOwnProperty()
.该hasOwnProperty()
检查将阻止您遍历,它继承了(一些第三方库污染命名空间)属性:
var map = json.total[0];
for(var prop in map) if(map.hasOwnProperty(prop)) {
var value = map[prop];
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11785 次 |
最近记录: |