我喜欢用jsonb将json数据Map到java对象是多么容易,但我似乎偶然发现了一个没有很好文档记录的用例。。。
给定此json数据:
{
"id": "test",
"points": [
[
-24.787439346313477,
5.5551919937133789
],
[
-23.788913726806641,
6.7245755195617676
],
[
-22.257251739501953,
7.2461895942687988
]
]
}
什么可以用作存储点值的对象类型?
import jakarta.json.bind.annotation.JsonbProperty;
public class Temp {
@JsonbProperty("id")
private String id;
@JsonbProperty("points")
private ??? points;
// Getters-Setters
}
因此,我可以使用以下内容创建临时对象:
import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;
Jsonb jsonb = JsonbBuilder.create();
Temp temp = jsonb.fromJson(jsonString, Temp.class);
到目前为止,我尝试了以下方法: List<Point>
-->“无法将json数组反序列化为类java.awt.point” List<Point2D>
-->“无法将json数组反序列化为类java.awt.point2d”
3条答案
按热度按时间lnvxswe21#
要找出默认Map,请使用非泛型字段并使用调试器进行观察:
9fkzdhlc2#
因为我已经这么做了:更改json格式将允许:
5lwkijsr3#
让我们试试: