我有一個JSON字符串是這樣的:JSON渲染關鍵數據未發現
{"{\"nodeName\":\"abc\"}":[{"url":"abc","status":true},{"url":"abc","status":true}]," {\"nodeName\":\"pqr\"}":[{"url":"abc","status":true},{"url":"abc","status":true}]}
我能夠得到使用(V)的查詢代碼,但沒能獲得密鑰(K)的值。在警報我越來越(未定義ABC正確)。 k的值是未定義的。
$.each(obj, function() {
$.each(this, function(k, v) {
alert(k.nodeName +" "+ v.url +" "+v.status);
});
});
我需要(k)的值作進一步驗證。我已驗證JSON字符串以確保它是有效的,所以我在這裏錯過了什麼或者是否有任何其他方式做到這一點?請幫助...
此外,從服務器端我傳遞JSON對象是這樣的:
json.put(js.toString(),jsarray)
其中
json = json OBject,
js = json Object,
jsarray = json Array.
鍵總是字符串。在這種情況下,它看起來像鍵包含JSON本身。您必須首先將JSON解析爲對象。請參閱http://stackoverflow.com/q/4935632/218196。但說實話,這是一個非常混亂的數據結構。最好直接使用節點名作爲鍵,即你的JSON看起來像'{「abc」:[...],「pgr」:[...],...}'。 –
我已更改json字符串,如下所示: {「abc」:[{「url」:「asd」,「status」:true},{「url」:「as」,「status」:true}] ,「xyz」:[{「url」:「as」,「status」:false},{「url」:「as」,「status」:true}]} 但我需要key的名字作爲abc ,xyz但迭代它給作爲0,1 –
看看我的答案。在內部'$ .each'中迭代該值,即數組。你想要的鑰匙來自外部'$ .each'循環。 –