用javascript解析json

时间:2015-06-23 17:04:08

标签: javascript json angularjs

我有这个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]

3 个答案:

答案 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;]

样本:https://jsfiddle.net/t4yfb923/

答案 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)