簡體   English   中英

如何使用2種類型的JSONObject解析JSONArray?

[英]how to parse JSONArray with 2 type of JSONObject?

我正在嘗試解析這個有兩種不同類型JSON的JSONArray。 {"key":"a","value":"b"}{"key":"c"} 我不知道JSONArray中這些JSON的順序; 它可能是這樣的: [{"key":"a","value":"b"},{"key":"c"},{"key":"d","value":"e"}]

我怎么解析這個JSONArray?

你實際上可以做這樣的事情

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")) {

                }
            }

        }

您可以使用JSON.simple將字符串數據轉換為JSON數組。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM