[英]how to parse JSONArray with 2 type of JSONObject?
I'm trying to parse this JSONArray that has 2 different types of JSONs. 我正在尝试解析这个有两种不同类型JSON的JSONArray。
{"key":"a","value":"b"}
and {"key":"c"}
. {"key":"a","value":"b"}
和{"key":"c"}
。 i don't know the order of these JSONs in JSONArray; 我不知道JSONArray中这些JSON的顺序; it could be something like this:
[{"key":"a","value":"b"},{"key":"c"},{"key":"d","value":"e"}]
. 它可能是这样的:
[{"key":"a","value":"b"},{"key":"c"},{"key":"d","value":"e"}]
。
how can i parse this JSONArray? 我怎么解析这个JSONArray?
You can actually do something like this 你实际上可以做这样的事情
JSONArray arr = new JSONArray(
"[{\"key\":\"a\",\"value\":\"b\"},{\"key\":\"c\"},{\"key\":\"d\",\"value\":\"e\"}]");
for (int i = 0; i < arr.length(); i++) {
JSONObject obj = (JSONObject) arr.get(i);
Iterator<String> keys = obj.keys();
while (keys.hasNext()) {
String key = keys.next();
//your logic for checking if object has both keys or one key goes here
if (key.equals("key")) {
}
}
}
You can use JSON.simple to convert string data to JSON array. 您可以使用JSON.simple将字符串数据转换为JSON数组。 https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple/1.1.1
https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple/1.1.1
public static void main(String[] args) throws ParseException {
String data = "[{\"key\":\"a\",\"value\":\"b\"},{\"key\":\"c\"},{\"key\":\"d\",\"value\":\"e\"}]";
JSONParser parser = new JSONParser();
JSONArray jsonArray = (JSONArray) parser.parse(data);
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
//Verify json type by checking for value
if (jsonObject.get("value") == null) {
// Type 1 key
System.out.println(jsonObject.toJSONString());
} else {
// Type 2 key and value
System.out.println(jsonObject.toJSONString());
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.