2013-01-16 34 views
0

我的JSON對象的結構如下:JSON數組 - 如何解析這樣的結構?

{ key : 
[ 
{keya1:value1, 
keya2:value2, 
keya3:[value31,value32...] 
keya4:value4 
}, 
{keyb1:value1, 
keyb2:value2, 
keyb3:[value31,value32...] 
keyb4:value4 
}, 
... 
.. 
{keys1:value1, 
keys2:value2, 
keys3:[value31,value32...] 
keys4:value4 
} 
] 
} 

我用一個簡單的json.parse嘗試,但它不工作。 有了這樣的結構我應該如何去解析,以便我可以安全地迭代每個鍵的實例,並顯示所有keya-value,keyb-valueb ..對鍵值? 非常感謝!

編輯:我實際上遺漏了目的的引號。原始的JSON數據已經引用了關鍵字和值。或許我之前沒有提及它。

+0

實際上,您最好將此數據結構正確地json格式化。這會讓你更容易!你能解釋數據是如何生成的嗎? – Undefined

+0

您的json無效:鍵名必須被引用 – Eric

+0

感謝您的輸入。請參閱我的編輯 – BlahBlah

回答

2

嘗試使用getJsonArray

JSONObject json = (JSONObject) JSONSerializer.toJSON(response); 

JSONArray array= json.getJSONArray("key"); 

getString("key");適用

+0

恐怕這不起作用,因爲數據未格式化爲JSON。主要問題是任何字符串都沒有雙引號。 – Undefined

+0

很確定OP正在使用javascript – Eric

+0

另外OP要求輸入JavaScript。 – Undefined

0

你JSON是無效的,你需要你的陣列後的雙引號和逗號,當你有一個正確的JSON,你可以使用JSON.parse

{ "key" : 
     [{ 
      "keya1":"value1", 
      "keya2":"value2", 
      "keya3":["value31","value32..."], 
      "keya4":"value4" 
     }, 
     { 
      "keyb1":"value1", 
      "keyb2":"value2", 
      "keyb3":["value31","value32..."], 
      "keyb4":"value4" 
     }, 
     { 
      "keys1":"value1", 
      "keys2":"value2", 
      "keys3":["value31","value32..."], 
      "keys4":"value4" 
     } 
    ] 
} 
0

嘗試引用每個鍵和值:

var str = '{ key : \ 
    [ \ 
     {\ 
      keya1:value1, \ 
      keya2:value2, \ 
      keya3:[value31,value32], \ 
      keya4:value4 \ 
     }, \ 
     {\ 
      keyb1:value1, \ 
      keyb2:value2, \ 
      keyb3:[value31,value32], \ 
      keyb4:value4 \ 
     }, \ 
     {\ 
      keys1:value1, \ 
      keys2:value2, \ 
      keys3:[value31,value32], \ 
      keys4:value4 \ 
     } \ 
    ] \ 
}'; 

var pattern=/(\w+\d*)/ig; 
var json=str.replace(pattern, '"$1"'); 
var parsedJSON=JSON.parse(json) 
console.log(parsedJSON); 

我希望這有助於。