我正在尝试将 JSON 字符串的一部分序列化为一个对象。JSON 字符串如下所示:
{"error":null,"excludeFields":null,"message":null,"success":{"user":{"name":null,"organizationId":100,"username":"nl4321"}}}
我只需要 JSON 字符串的用户部分,它对应于以下类的对象:
public class UserForm implements Serializable {
private static final long serialVersionUID = -5033294929007794646L;
private String username;
private String name;
@Getter @Setter
private int organizationId;
public UserForm() {
}
public UserForm(User user) {
if (user != null) {
this.username = user.getUsername();
this.name = user.getName();
this.organizationId = user.getDefaultOrganisationId();
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
我目前尝试反序列化的方式如下:
private UserForm deserializeToJsonResponse(String bodyContent) throws IOException {
JSONDeserializer<UserForm> jsonDeserializer = new JSONDeserializer<UserForm>();
return jsonDeserializer.use("values.success.user", UserForm.class).deserialize(bodyContent, UserForm.class);
}
该use
方法提供了一个路径和一个类,但是无论我尝试什么路径,反序列化后UserForm的内容都是空的。我尝试过:“用户”、“成功用户”、“值.成功用户”。
有谁知道我做错了什么以及如何解决?我意识到还有其他解决方案,比如 Jackson,但这是已经大量使用 FlexJSON 的大型代码库的一部分。背景:我正在尝试为作为项目一部分的 API 编写单元测试。