2017-07-03 112 views
0

每一個角色,我有這個,我想迭代,並從它那裏得到的值,並設置一個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預先

由於

+1

在您的第二例嘗試'objArray = JSON.parse(objArray);''作爲JSON.parse()來'將返回解析的值,雖然這隻會回報你'「位 - > [目標對象],[目標對象]」' – George

+0

我得到[對象對象],[目標對象]當我做到這一點 – Tazz

回答

1

首先你需要從JSON.parse返回的值,然後你必須遍歷數組bitobjArray,因爲現在你只能看在頂層的鑰匙。

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

-1

JSON.parse()需要JSON字符串作爲參數,並返回一個JSON對象。 這應該工作,如果JSON字符串是適當的。

var key = JSON.parse(objArray); 
for (key in objArray) { 
    if (objArray.hasOwnProperty(key)) { 
    console.log(key + " -> " + objArray[key]); 
    } 
} 
0

如果objArray是一個字符串,JSON.parse將解析JSON作爲一個字符串:

var output = Object.values(JSON.parse(objArray)["bit"]).map(elt => { 
     return elt.id + '->' + elt.value; 
    }).join(';'); 

    console.log(output); 
0

每次我試圖重複我得到了一個未定義或每次都遇到從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 StringJSON 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]); 
 
     } 
 
    }