2013-01-16 37 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); 

我希望这有助于。