JSON to array - 如何解析这样的结构?

时间:2013-01-16 08:21:30

标签: javascript jquery 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,但它不起作用。 有了这样的结构,我该如何进行解析,以便我可以安全地遍历每个键的实例并显示key的值的所有keya-valuea,keyb-valueb ..对? 非常感谢!

编辑:我实际上是故意忽略了引号。原始的JSON数据引用了键和值。我之前没有提到它。

3 个答案:

答案 0 :(得分:2)

尝试使用getJsonArray

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

JSONArray array= json.getJSONArray("key");
适用时

getString("key");

答案 1 :(得分: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"
         }
    ]
}

答案 2 :(得分: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);

我希望这会有所帮助。