【问题标题】:How to convert json values to keys? Basically I want to use value of one key as a "key" and value of other as value如何将json值转换为键?基本上我想将一个键的值用作“键”,将另一个键的值用作值
【发布时间】:2021-06-01 18:17:24
【问题描述】:

我正在用 java spring boot 编写 API。我正在使用下面的 json 作为来自另一个 API 的响应

[
  {
  "item": "Apple",
  "count": 30
  },
  {
  "item": "Orange",
  "count": 10
  },
  {
  "item": "Guava",
  "count": 4
  }
]

我想把它转换成

{
  "Apple": 30,
  "Orange": 10,
  "Guava": 4
}

最简单有效的方法是什么?

【问题讨论】:

  • 顺便说一句,请注意简单性和效率通常是相反的。例如,最有效的方法是使用面向流/事件/令牌的解析而不是对象映射,但通常需要编写更多代码......

标签: java json api rest jackson2


【解决方案1】:

定义一个类来保存一个项目

public record Item {
    String item;
    int count;
}

使用您最喜欢的 json 库(我的是 Jackson)反序列化为 List<Item>

收集到地图:

Map<String, Integer> map = list.stream().collect(toMap(Item::getItem, Item::getCount));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多