在java中使用键对Json响应进行分组
我是java开发新手。我正在学习json解析。我得到了类似这样的json响应在java中使用键对Json响应进行分组,java,arrays,json,Java,Arrays,Json,我是java开发新手。我正在学习json解析。我得到了类似这样的json响应 "sizePrices": [ { "cargoHandoverPrice": 0.00, "sizeCode": "S", "sizeNumber": 100 }, { "cargoHandoverPrice": 1.66, "sizeCod
"sizePrices": [
{
"cargoHandoverPrice": 0.00,
"sizeCode": "S",
"sizeNumber": 100
},
{
"cargoHandoverPrice": 1.66,
"sizeCode": "M",
"sizeNumber": 110
},
{
"cargoHandoverPrice": 0.00,
"sizeCode": "L",
"sizeNumber": 120
}
,
{
"cargoHandoverPrice": 0.00,
"sizeCode": "XL",
"sizeNumber": 130
},
{
"cargoHandoverPrice": 0.00,
"sizeCode": "XXL",
"sizeNumber": 140
},
{
"cargoHandoverPrice": 1.66,
"sizeCode": "XXXL",
"sizeNumber": 150
}
]
[
{
"cargoHandoverPrice": 0.00,
"SizeRange": "S-XXL",
},
{
"cargoHandoverPrice": 1.66,
"SizeRange": "M-XXXL",
}
]
如果价格相配的话,它会还给我一个尺码
如下
我想把这个Json解析成这样的东西
"sizePrices": [
{
"cargoHandoverPrice": 0.00,
"sizeCode": "S",
"sizeNumber": 100
},
{
"cargoHandoverPrice": 1.66,
"sizeCode": "M",
"sizeNumber": 110
},
{
"cargoHandoverPrice": 0.00,
"sizeCode": "L",
"sizeNumber": 120
}
,
{
"cargoHandoverPrice": 0.00,
"sizeCode": "XL",
"sizeNumber": 130
},
{
"cargoHandoverPrice": 0.00,
"sizeCode": "XXL",
"sizeNumber": 140
},
{
"cargoHandoverPrice": 1.66,
"sizeCode": "XXXL",
"sizeNumber": 150
}
]
[
{
"cargoHandoverPrice": 0.00,
"SizeRange": "S-XXL",
},
{
"cargoHandoverPrice": 1.66,
"SizeRange": "M-XXXL",
}
]
我怎样才能做到这一点?我的动机是根据价格对所有尺码进行分组。您在这里提出了两个问题: 1.如何将JSON解析为Java对象,然后再转换回JSON 2.一旦我有了Java对象中的数据,我如何按价格分组 关于问题1,有几种高质量的JSON解析器可用,例如解析JSON和构造适当的对象非常简单。但是,如果您阅读了教程,尝试使用解析器,然后遇到问题,请返回SO并提出具体问题 关于问题2,有一项建议:
enum Size { S, M, L, XL, XXL, XXL }
class SizePrice {
private final double price;
private final Size size;
private final int number;
}
List<SizePrice> sizePrices = <read from JSON>
Map<Double,List<SizePrice>> sizePricesGroupedByPrice = sizePrices.stream()
.collect(Collectors.groupingBy(sp -> sp.price));
enum Size{S,M,L,XL,XXL,XXL}
类大小价格{
私人最终双倍价格;
私人最终尺寸;
私人最终整数;
}
列表大小价格=
Map sizePricesGroupedByPrice=sizePrices.stream()
.collect(收集器.groupingBy(sp->sp.price));
Size
enum故意按大小顺序排列,这样您就可以得到最小和最大(按ordinal())的大小来生成范围。但是我需要使用Jackson来解析这些JSON,我可以用一个示例代码来解析我的JSON并得到o/pyes吗,但任何获取引用的链接,至少我从未使用过。您可以尝试在下面的代码段中解析-List items=objectMapper.convertValue(objectMapper.readTree(json).get(“sizePrices”),new TypeReference(){}代码>其中Item为SizePrice@sprinterThanks在执行时经常提到,我在下面遇到异常`线程“main”java.lang.NoClassDefFoundError中出现异常:com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector上的com/fasterxml/jackson/annotation/JsonView。我添加了像com.fasterxml.jackson.core jackson databind 2.8.0 Hi@sprinter这样的依赖项,我添加了下面的代码来获取sizeprices列表,我正在获取值我也可以分组。现在我得到了2号的列表,以后我怎么才能得到这些范围呢?