java如何在JSON反序列化期间将引用转换为实例
这是一个问题,但已经解决了。我试图将一些JSON数据反序列化到Java POJO中。例如,以以下JSON数据为例:
对于Account
数据,我有以下JSON数据,它通过用户id引用用户:
{
"name" : "Bob's Account",
"roles": {
"administrator" : "user-1",
"owner" : "user-1",
"participant" : "user-2"
}
}
对于User
的'Bob'和'Alice'我有以下JSON数据:
{
"name": "Bob",
"id" : "user-1"
}
{
"name": "Alice",
"id" : "user-2"
}
我想要实现的是将数据反序列化为以下Java类:
import java.util.Map;
import java.util.HashMap;
public class Account {
String name;
Map<String, User> roles = new HashMap<>();
}
及
public class User {
String id;
String name;
}
注意Account
类有一个映射,它将String
链接到一个User
实例
# 1 楼答案
为此,您必须在
Account
对象中注释属性roles
,如下所示:然后用create a
UserReferenceConverter
将String
形式的用户id转换为实际的User
实例enter code here
:要从JSON字符串加载
Account
,请运行以下命令: