我有这个json文件,我想要解析并获得subcat
test1
的值作为javascript中的数组。是否有捷径可寻?我使用AngularJS $http
来获取json。
输入:
[
{
"category":"test1",
"ID":"1",
"subcat":[
{
"completed":"4",
"uncompleted":"5"
}
]
},{
"category":"test2",
"ID":"2"
"subcat":[
{
"completed":"1",
"uncompleted":"5"
}
}
]
预期结果为[4,5]
答案 0 :(得分:1)
11-4=7
“Res”将包含您想要的结果; 如果你想要数组[4,5] 然后
Corrected Array
[
{
"category":"test1",
"subcat":[
{
"completed":"4",
"uncompleted":"5"
}
]
},
{
"category":"test2",
"subcat":[
{
"completed":"1",
"uncompleted":"5"
}
]
}
]
var JsonArray=[
{
"category":"test1",
"subcat":[{"completed":"4","uncompleted":"5"}]},
{
"category":"test2",
"subcat":[{"completed":"1","uncompleted":"5"}]
}
];
for(var i=0;i<JsonArray.length;i++)
{
if(JsonArray[i].category=="test1")
var Res=JsonArray[i].subcat;
}
答案 1 :(得分:0)
试试这个......
<script type="text/javascript">
var newarray=new Array();
var test='[{"category":"test1","ID":"1","subcat":[{"completed":"4","uncompleted":"5"}]},{"category":"test2","ID":"2","subcat":[{"completed":"1","uncompleted":"5"}]}]';
var tags = JSON.parse(test);
for(i=0;i<tags.length;i++)
{
if(tags[i]['category']=='test1')
{
var subcat=tags[i]['subcat'];
for(j=0;j<subcat.length;j++)
{
newarray.push(subcat[j]['completed']);
newarray.push(subcat[j]['uncompleted']);
}
}
}
console.log(newarray);
</script>
输出:[&#34; 4&#34;,&#34; 5&#34;]
答案 2 :(得分:-1)
你可以使用lodash和方法find: https://lodash.com/docs#find
// Stock your json in a variable
var json = [
{
"category":"test1",
"ID":"1",
"subcat":[
{
"completed":"4",
"uncompleted":"5"
}
]
},{
"category":"test2",
"ID":"2"
"subcat":[
{
"completed":"1",
"uncompleted":"5"
}
}
]
//find your object with lodash
var result = _.find(json, {"ID": "1"});
//then, get subcat value
console.log(result.subcat)