我正在尝试将JSON响应反序列化为这样的对象:
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Group {
private String id;
private String name;
private String description;
private List<EffectiveRoles> roles;
}
其中 EffectiveRoles 基本上是:
@Data
public class EffectiveRole {
private String id;
private String name;
private String self;
}
我在GET请求中获得的JSON响应如下所示:
{
"roles": {
"references": [
{
"role": {
"id": "",
"name": "",
"self": ""
},
"self": ""
}
]
}
}
如何反序列化此响应以创建包含所提及值的 roles 数组? 我在使用Jackson实施正确的ObjectMapping时遇到麻烦。 最简单的方法是使对象结构看起来像传入的JSON,但我想使其更易于访问以用于进一步的前端使用。
答案 0 :(得分:0)
假设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>