当前位置: 首页 > 知识库问答 >
问题:

Java-Gson不工作与对象定义在飞

窦英武
2023-03-14

我不想为了进行json转换而定义额外的类型。我使用的库需要一个对象作为输入,然后对该数据执行http操作,因此我不能使用硬编码的json字符串作为输入。

private static final Gson GSON = new Gson();

public static void main(String[] args) {
  System.out.println(GSON.toJson(new Object() {
    private String email_address = "me@mail.eu";
    public String getEmail_address() {return "me@mail.eu"; }
    public void setEmail_address(String mail) {email_address = mail; }
  }));    
}

我试图删除getter和setter,或者离开getter并删除字段,但不起作用。有人知道怎么解决这个问题吗?

共有2个答案

龚睿
2023-03-14

为什么不定义一个额外的类型?我们不是在80年代。我会亲自使用DTO。什么是数据传输对象?

但也许你的问题的答案就在这里:Java——谷歌的GSON是否使用构造函数?

岳杜吟
2023-03-14

用于Json序列化/反序列化(如Gson)的库依赖于这样一个事实,即您已经定义了自定义对象,您将在其上映射Json字符串。这是因为它们使用类上的反射将字段与json中相应的键映射。没有它,他们很难实现任何(可用的)目标。

 类似资料:
  • 问题内容: 确定,所以我编辑了问题,因为它不够清楚。 编辑2 :更新了JSON文件。 我在Android应用程序中使用GSON,我需要解析来自服务器的JSON文件,这些文件有点太复杂了。我不想让我的对象结构太沉重,所以我想简化内容: 所以我的对象的结构将不是JSON文件的结构。 例如,如果在JSON中,我有以下内容: 我不想保留我当前的对象结构,即一个对象,其中包含一个和一个“总计”。但是我只想将

  • 我试图用GSON将一个对象转换成JSON格式。然后,我将把JSON发送给用php编写的webservice。不幸的是,由于某种原因,gson.toJson(object)方法不起作用。 我有这个java对象干预(它包含字符串、日期、时间和位图类型的几个字段)。当我尝试这样做时: 我在gson变量中得到这个: gson={seralizeNulls: false工厂:[Factory[type=co

  • 考虑下面的代码: 对于上面的代码,输出是:

  • 出于教育目的,我正在研究Java值对象。 我不明白的是,为什么没有人(异口同声)提到Java值对象实现可比性? 如果Java值对象必须具有"正确的"HashCode 这是我的思考过程。将测试值对象的实例是否相等,因此它们需要正确的equals/hashcode。值对象可以存储在“hash”集合中,这也是Hashcode方法所需要的。那么,为什么不添加Compariable以便它们可以成为有序集合中

  • 问题内容: gson是一个很棒的图书馆-运作良好。有时我有自定义要求,并且可以制作和注册TypeAdapters和TypeAdaptorFactories-效果也很好。 但是令我困惑的是如何委托回json序列化…大多数时候,我需要使用它进行收集,但为了说明这一点- 假设我有一个配对类,gson显然会很高兴地序列化,但是出于某种原因我需要自己的自定义序列化程序。好吧…如果我是 如果我为此编写了一个类

  • 然而,让我困惑的是,如何将委托返回到json序列化中...大多数时候,我需要这个集合,但为了说明这一点-假设我有一个pair类,gson显然会很高兴地序列化它,但出于某种原因,我需要自己的自定义序列化器。嗯...如果我的双是 如果我为此编写了一个类型适配器-您将希望write函数看起来如下所示: 所以你可以看到问题--我不知道第一个和第二个的类型,也不知道它们是如何序列化的。我可以使用gson.t