我有两个类事件和用户有很多到许多关系。
public class Event {
private int id;
private List<Users> users;
}
public class User {
private int id;
private List<Event> events;
}我读过@JsonIdentityInfo注释,这应该是有帮助的,但我看不到这方面的一个例子。
发布于 2013-08-01 17:26:55
您可以在两个类中使用@JsonIdentityInfo User和Event:
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property="@UUID")
public class User
{
private int id;
private List<Event> events;
// Getters and setters
}..。和
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property="@UUID")
public class Event
{
private int id;
private List<User> users;
// Getters and setters
}您可以酌情使用任何ObjectIdGenerator。现在,与许多映射对应的对象的序列化和反序列化将获得成功:
public static void main(String[] args) throws IOException
{
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Event event1 = new Event();
event1.setId(1);
Event event2 = new Event();
event2.setId(2);
User user = new User();
user.setId(10);
event1.setUsers(Arrays.asList(user));
event2.setUsers(Arrays.asList(user));
user.setEvents(Arrays.asList(event1, event2));
String json = objectMapper.writeValueAsString(user);
System.out.println(json);
User deserializedUser = objectMapper.readValue(json, User.class);
System.out.println(deserializedUser);
}希望这能有所帮助。
发布于 2014-10-28 14:27:58
我来这里“谷歌”,所以我用@Jackall's anwers,有一点国防部
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")这是因为我的DTO有一个名为"id“的属性,就像问题中的事件和用户类一样。
发布于 2014-02-04 22:22:04
尝试在JsonIdentityInfo注释中使用"scope“属性:
@JsonIdentityInfo(
generator = ObjectIdGenerators.UUIDGenerator.class,
property="@UUID",
scope=YourPojo.class
)https://stackoverflow.com/questions/17987789
复制相似问题