2015-06-23 62 views
-5

我有這個json文件我想解析並獲取值爲subcattest1作爲javascript中的數組。是否有捷徑可尋?我使用AngularJS $http來獲取json。使用javascript解析json

對於輸入:

[ 
    { 
    "category":"test1", 
    "ID":"1", 
     "subcat":[ 
     { 
     "completed":"4", 
     "uncompleted":"5" 
     } 
    ] 
    },{ 
    "category":"test2", 
    "ID":"2" 
    "subcat":[ 
     { 
     "completed":"1", 
     "uncompleted":"5" 
     } 
    } 

] 

預期結果爲:[4,5]

+0

[Parse JSON in JavaScript?](http://stackoverflow.com/questions/4935632/parse-json-in-javascript) –

回答

-1

您可以使用lodash和方法的發現: 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) 
1
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; 
     } 

「RES」 將包含您預期結果; 如果你想數組[4,5] 然後

var finalRes=[]; 
finalRes.push(Res[0].completed); 
finalRes.push(Res[0].uncompleted); 
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> 

輸出: 「4」, 「5」]

DEMO:https://jsfiddle.net/t4yfb923/

+0

我發佈了我的答案檢查它並讓我知道 –