gpt4 book ai didi

java - 反序列化 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 11:19:00 25 4
gpt4 key购买 nike

我在反序列化 JSON 对象时遇到问题。该对象包含一个被反序列化为 Map 的集合,这是默认的。我需要它反序列化为一个集合。我的代码如下:

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);
}

在前端,我提交我的 Controller 以下列格式接收的表单中的数据:

{"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}]}

关于java - 反序列化 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23473729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com