杰克逊反序列化包含对象数组的对象



我正在尝试将JSON响应反序列化为这样的对象:

@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Group {
private String id;
private String name;
private String description;
private List<EffectiveRoles> roles;
}

其中有效角色基本上是:

@Data
public class EffectiveRole {
private String id;
private String name;
private String self;
}

我在 GET 请求上得到的 JSON 响应如下所示:

{
"roles": {
"references": [
{
"role": {
"id": "",
"name": "",
"self": ""
},
"self": ""
}
]
}
}

如何反序列化此响应以创建包含上述值的角色数组? 我在使用杰克逊实现正确的对象映射时遇到问题。 最简单的方法是使对象结构看起来像传入的JSON,但我想让它更容易访问以供进一步使用。

假设 flexjson 存在于类路径上,因此导入将是:

import flexjson.JSONDeserializer;
import flexjson.transformer.DateTransformer; 

要转换的代码将是:

new JSONDeserializer<List<Group>>().use(null, ArrayList.class).use("values", Group.class).deserialize(json);

这里json是包含 json 响应的字符串

在pom中添加下面的依赖项.xml以获得flexjson。

<dependency>
<groupId>net.sf.flexjson</groupId>
<artifactId>flexjson</artifactId>
<version>2.1</version>
</dependency>

最新更新