簡體   English   中英

從Java讀取JSON

[英]Reading JSON from Java

我有這個JSON結構:

{"metrics":[{
        "type": "sum",
        "column": ["rsales", "nsales"]
    },
    {
        "type":"count",
        "column":["ptype", "plan"]
    }]
}

我正在嘗試從Java讀取JSON,並希望輸出如下所示:

str_sum="Sum" 
str_sum_array[]= {"rsales" ,"nsales"} 
str_count="count" 
str_count_array[]= {"ptype" ,"plan"} 

到目前為止,這是我的代碼:

JSONArray jsonArray_Metric = (JSONArray) queryType.get("metrics");
for (int i = 0; i < jsonArray_Metric.length(); i++) {
JSONObject json_Metric = jsonArray_Metric.getJSONObject(i);
Iterator<String> keys_Metrict = json_Metric.keys();
while (keys_Metrict.hasNext()) {
    String key_Metric = keys_Metrict.next();
    // plz help
  }
}

如何完成代碼以產生所需的輸出?

除了使用iterator您還可以使用如下簡單的for-loop

JSONParser parser = new JSONParser();
JSONObject object = (JSONObject) parser.parse(queryType);
JSONArray jsonArray_Metric = (JSONArray) object.get("metrics");
for (int index = 0; index < jsonArray_Metric.size(); index++) {
   JSONObject item = (JSONObject) jsonArray_Metric.get(index);
   String type = (String) item.get("type");
   JSONArray column = (JSONArray) item.get("column");
   System.out.println("str_sum store=\"" +  type + "\"");
   System.out.println("str_count_array[] store=" +  column);
} 

樣品運行

str_sum store="sum"
str_count_array[] store=["rsales","nsales"]
str_sum store="count"
str_count_array[] store=["ptype","plan"]

如果您希望使用大括號而不是默認(實際)大括號(即方括號)顯示JSONArray,則可以在打印時使用類似的方法,甚至可以通過將其替換為空字符串“”來刪除它們。

System.out.println("str_count_array[] store " +  column.toString().replace("[", "{").replace("]", "}"));

您可以通過使用println語句隨意設置顯示代碼的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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