简体   繁体   English

JSON数组-如何解析这种结构?

[英]JSON to array - How to parse for such a structure?

My JSON object has the following structure : 我的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
}
]
}

I tried using a simple json.parse but it doesnt work. 我尝试使用一个简单的json.parse,但它不起作用。 With such a structure how should i go about parsing so that i can safely iterate over each instances of key and display all keya-valuea,keyb-valueb.. pairs for values of key? 有了这样的结构,我应该如何进行解析,以便可以安全地遍历key的每个实例,并显示key值的所有keya-valuea,keyb-valueb ..对? Many thanks! 非常感谢!

EDIT : I actually omitted quotes on purpose. 编辑:我实际上是故意省略了引号。 The original JSON data HAS quotes around keys and values.Sorry i didnt mention it earlier. 原始的JSON数据已在键和值周围加引号。抱歉,我之前没有提到它。

Try using getJsonArray 尝试使用getJsonArray

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

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

or getString("key"); getString("key"); where applicable 适用时

Your JSON is invalid, you need the double quotes and comma after your array, when you have a correct JSON you could use JSON.parse 您的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"
         }
    ]
}

try to quote each key and value: 尝试引用每个键和值:

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);

I hope this helps. 我希望这有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM