[英]Deserializing JSON object
我在反序列化JSON对象时遇到麻烦。 该对象包含一个要反序列化为Map的集合,这是默认设置。 我需要将它反序列化为Set。 我的代码如下:
TaskDetail.java
@ManyToMany
private Set<RoleDetail> roleDetails = new HashSet<RoleDetail>();
public String toJson() {
return new JSONSerializer().exclude("*.class").include("roleDetails").serialize(this);
}
RoleDetail.java
@ElementCollection
@Enumerated(EnumType.STRING)
private Set<RoleFunction> roleFunctions = new HashSet<RoleFunction>();
public String toJson() {
return new JSONSerializer().exclude("*.class").include("roleFunctions").serialize(this);
}
从前端,我提交表单中的数据,该数据由控制器以以下格式接收:
{"name":"Clean Shelves","description":"Clean all shelves in the store","roleDetails":{"description":"A person that counts stock","id":1,"name":"Stock Counter","version":0}}
我需要将roleDetails对象反序列化为HashSet。 如何使用JsonDeserializer做到这一点? 我假设在RoleDetail.java中是这样的:
public static RoleDetail fromJsonToRoleDetail(String json) {
return new JSONDeserializer<RoleDetail>().use(null, RoleDetail.class).use("roleDetail.values", HashSet.class).deserialize(json);
}
还是我还必须在TaskDetail.java中编写类似的代码?
您的roleDetails应该是对象数组,而不是对象。
你应该有这样的东西:
{"name":"Clean Shelves","description":"Clean all shelves in the store","roleDetails":[{"description":"A person that counts stock","id":1,"name":"Stock Counter","version":0}]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.