我正在尝试将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>