java - 如何使用嵌套的 json 数组反序列化 json 对象

标签 java json gson json-deserialization

我是 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/

相关文章:

Java决策问题

java - 从 android 将 JSON 对象发布到 PHP 服务器时无法识别错误

java - 使用 GSON 在 Java 中解析 JSON 文件

php - 根据 json 响应选择单选按钮

java - Gson 无法在我的对象中强制转换 "Object"类

java - Gson:JsonSyntaxException:应为 BEGIN_OBJECT 但为 STRING

java - (泛型)不能对非静态类型 T 进行静态引用

java - LEAK : ByteBuf. release() 在被垃圾收集之前未被调用

java - 找不到符号 setonClickListener

ios - 是否可以使用 ObjectMapper 创建 JSON?