我是 Java 新手,我正在尝试使用 gson 库来反序列化具有嵌套 Json 对象数组的 Json 对象,但面临一些困难。
需要一些帮助来了解如何使用 gson 库以正确的方式做到这一点?
POJO:
@JsonRootName(value = "Error")
public class ErrorData {
private String Source;
private String ReasonCode;
private String ErrorCode;
private String Description;
// getters and setters
}
@JsonRootName(value = "Errors")
public class ErrorsDataRes {
@SerializedName("Error")
private List<ErrorData> Error;
// getters and setters
}
主要:
public static void main(String[] args) throws Exception {
String data =
"{\"Errors\":{\"Error\":[{\"Source\":\"INPUT\",\"ReasonCode\":\"INVALID_FIELD_VALUE\",\"ErrorCode\":\"E0001\",\"Description\":\"Invalid Field Value\"}]}}";
Gson gson = new GsonBuilder().create();
ErrorsDataRes errors = gson.fromJson(data, ErrorsData.class);
}
我期望将 Json 字符串反序列化到我的 ErrorsDataRes 对象中,但结果是一个空对象。有什么想法吗?
最佳答案
POJO 类不正确。请尝试这个。
POJO:
public class ErrorData {
@SerializedName("Source")
private String Source;
@SerializedName("ReasonCode")
private String ReasonCode;
@SerializedName("ErrorCode")
private String ErrorCode;
@SerializedName("Description")
private String Description;
}
public class ErrorsData {
@SerializedName("Error")
private List<ErrorData> Error;
//getters and setters
}
public class ErrorsDataRes {
@SerializedName("Errors")
private ErrorsData errors;
}
public static void main(String[] args) {
String data =
"{\"Errors\":{\"Error\":[{\"Source\":\" INPUT\",\"ReasonCode\":\"INVALID_FIELD_VALUE\",\"ErrorCode\":\"E0001\",\"Description\":\"Invalid Field Value\"}]}}";
Gson gson = new GsonBuilder().create();
ErrorsDataRes errors = gson.fromJson(data, ErrorsDataRes.class);
System.out.println(errors);
}
关于java - 如何使用嵌套的 json 数组反序列化 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57768471/