java - JSON中如何按属性进行计数?

标签 java json

我有以下 JSON:

{
  "items": [
    {
      "id": "1",           
      "name": "John",
      "location": {
        "town": {
          "id": "10"
        },
        "address": "600 Fake Street",
      },
      "creation_date": "2010-01-19",
      "last_modified_date": "2017-05-18"
    },
    {
      "id": "2",           
      "name": "Sarah",
      "location": {
        "town": {
          "id": "10"
        },
        "address": "76 Evergreen Street",
      },
      "creation_date": "2010-01-19",
      "last_modified_date": "2017-05-18"
    },
    {
      "id": "3",           
      "name": "Hamed",
      "location": {
        "town": {
          "id": "20"
        },
        "address": "50 East A Street",
      },
      "creation_date": "2010-01-19",
      "last_modified_date": "2017-05-18"
    }    
  ]
}

我需要得到这样的东西,计算每个townId出现的次数:

[ { "10": 2 }, {"20": 1 }]

我正在尝试找到最有效的方法来做到这一点。有什么想法吗?

最佳答案

最有效的方法是在 StringBuilder 中加载字符串并删除所有换行符和空格。然后搜索 "town":{"id":" 字符串的索引(城镇起始索引),然后搜索结束索引(字符串`"}')。使用这 2 个索引,您可以提取城镇 ID 并对其进行计数。

无需将 JSON 反序列化为 POJO 对象:) 并通过 xpath 从 POJO 中提取值。

关于java - JSON中如何按属性进行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500867/

相关文章:

java - 使用参数调用 POST 方法时无法获得正确的响应

java - 使用@JsonFormat 的 jackson 日期格式?

java - 元素在 Arraylist 的迭代过程中丢失

java - 使用arraylist在txt文件中逐行插入数据

java - 删除 jaxb 输出中的外层元素

javascript - 通过 javascript 和 ajax 重写 JSON 值

java - Gson反序列化一个对象数组

java - Gson:有没有办法使用 GSON 只解析特定的内部 JSON 列表?

java - 在多线程编程中,同步是否剥夺了并发执行的好处

java - 句子中的每个单词大写字母