当前位置: 首页 > 面试题库 >

使用Gson将JSON映射到POJO

冯和硕
2023-03-14
问题内容

我有以下JSON表示盐请求的服务器响应:

{
    "USER":
    {
        "E_MAIL":"email",
        "SALT":"salt"
    },
    "CODE":"010"
}

我尝试使用以下POJO映射它:

public class SaltPOJO {
    private String code = null;
    private User user = null;

    @Override
    public String toString() {
        return this.user.toString();
    }

    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }

    public class User {
        private String e_mail = null;
        private String salt = null;

        @Override
        public String toString() {
            return this.e_mail + ": " + this.salt;
        }
        public String getE_mail() {
            return e_mail;
        }
        public void setE_mail(String e_mail) {
            this.e_mail = e_mail;
        }
        public String getSalt() {
            return salt;
        }
        public void setSalt(String salt) {
            this.salt = salt;
        }
    }
}

现在每次我这样做:

Gson gson = new Gson();
SaltPOJO saltPojo = gson.fromJson(json.toString(), SaltPOJO.class);

Log.v("Bla", saltPojo.toString());

saltPojo.toString()为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗?


问题答案:

我的变量顺序对Gson映射重要吗?

不,不是这样。

如何使用Gson将JSON映射到POJO?

它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。

您可以使用@SerializedName批注来随意使用任何变量名。

样例代码:

  class SaltPOJO {
        @SerializedName("CODE")
        private String code = null;
        @SerializedName("USER")
        private User user = null;
        ...

        class User {
            @SerializedName("E_MAIL")
            private String e_mail = null;
            @SerializedName("SALT")
            private String salt = null;


 类似资料:
  • 我有以下JSON来表示salt请求的服务器响应: 我尝试用以下POJO映射它: 每次我这样做: 为空。如何使用GSON将JSON映射到POJO?变量的顺序对Gson映射重要吗?

  • 本文向大家介绍apache-spark 使用Gson将JSON映射到自定义类,包括了apache-spark 使用Gson将JSON映射到自定义类的使用技巧和注意事项,需要的朋友参考一下 示例 使用Gson,您可以读取JSON数据集并将其映射到自定义类MyClass。 由于Gson不可序列化,因此每个执行程序都需要自己的Gson对象。而且,MyClass必须可序列化才能在执行程序之间传递。 请注意

  • 我有一根这样的绳子 我想将它存储在一个映射中,所需的结果是{“key0”:“value3”,“key1”:“value1”}

  • JSONMappingException:无法反序列化com.demo.json.model.abc实例 编辑:我的POJO如下所示: 有人能提出解决办法吗? 有人能帮我做这个吗?

  • 问题内容: 我的实体是这样的: 现在,我想将此newPerson对象映射到这样的JSON对象中, 注意:以上仅是示例。 我需要的是,我需要在序列化时自定义Key。默认情况下,它以属性名称为键。我无法更改属性名称。这该怎么做? 另外,是否可以更改JSON obj中出现的键/值对的顺序? 问题答案: 您需要将属性添加到您的类和属性。套装的属性到您的自定义属性名称和属性属性定义的顺序。 然后,您可以执行

  • 我编写了货币转换器程序,从,映射对象并创建选定速率的简单数据集。我的程序运行得很好,直到我停止使用解析和映射对象,并用替换它。它可以很好地读取基础货币和日期,但不能读取<代码>汇率 子对象。为什么? 我的代码:类别: 类: 必须使用映射对象的类: 我试图解析和映射的示例JSON数据 我正在使用这个对象来准备对象,该对象具有一个简单的