java - 从 Java 读取 JSON

标签 java json

我有这个 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
  }
}

如何完成代码以产生所需的输出?

最佳答案

您可以使用简单的for循环来代替使用迭代器,如下所示..

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 语句来根据需要格式化显示代码。

关于java - 从 Java 读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46133188/

相关文章:

java - 如何使用 Spring Java 应用程序使 IBM MQ 监听器进程缓慢

java - 如何创建运行jsp script而不刷新的搜索按钮?

jquery - 从 json 对象获取键名

java - Maven 获取特定类

java - 如何在java中分割这个字符串需要正则表达式?

java - g1 gc 中的 `Ref Enq` 实际做了什么

php - Symfony2.8。如何从post请求中获取数据

javascript - 操作 MongoDB 响应 NodeJS

iphone - 在 Objective C 中创建 JSON 格式

javascript - 使用 javascript 在 Internet Explorer 中迭代 formData 对象