java - 将 JSON 解析为 java 类

标签 java json gson

我有这个 JSON,我正在尝试使用 GSON 解析它的 Java 类。这是 JSON

resp = "{"isVisible":true,"image":{"preferenceOrder":["Rose","Lilly","Lotus"]}}";

我的java解析代码是这样的。

ImageOrderResult result = new Gson().fromJson(resp,ImageOrderResult.class);

这是我定义的类

public class ImageOrderResult {
    //Used for general Error Tracing
    public String status = "";
    public String message = "";
    public String errorTrace = "";

    public class Image{
        @SerializedName("preferenceOrder")
        public ArrayList<String> flowers= new ArrayList<String>();
    }

    @SerializedName("isVisible")
    public boolean isVisible= false; 
}    

这里我错过了花朵数组部分。解析器无法获取值列表。怎么解决?

最佳答案

问题是您定义了 Image 类型,但您的类缺少一个引用变量来实际“存储”它。 您需要像这样定义您的类才能正确序列化:

public class ImageOrderResult {
    //Used for general Error Tracing
    public String status = "";
    public String message = "";
    public String errorTrace = "";

    @SerializedName("image")
    public Image image = null;

    @SerializedName("isVisible")
    public boolean isVisible= false; 


    public class Image{
        @SerializedName("preferenceOrder")
        public ArrayList<String> flowers= new ArrayList<String>();
    }
}    

关于java - 将 JSON 解析为 java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16213723/

相关文章:

java - 如何将json数组拆分成字符串?

java - 仅在某些字段上使用 gson 反序列化 json 对象

java - 改造和 gson 错误 : java. lang.IllegalStateException:应为 BEGIN_OBJECT 但在第 1 行第 1 列路径 $

java - 是否可以将 JUnit 测试用例与 Eclipse 中测试的类同步?

java - 如何使用 GSON 从 json 树获取 json 值

java - Java List<String> 和 List<String>[] 有什么区别

java - 从内部 json 对象获取键值

json - 为嵌套的json数据创建Hive表

java - spring-boot REST POST API 发送文件

java - 在android中使用mysql、json将数据插入在线服务器。