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

使用GSON将Json解析为Json元素可能不同的JAVA对象

高运诚
2023-03-14

我试图使用GSON将JSON.txt文件解析为JAVA对象。JSON文件的结构如下:

    {
        "event0" : {
        "a" : "abc",
        "b" : "def"
        },

        "event1" : {
        "a" : "ghi",
        "b" : "jkl",
        "c" : "mno"
        }
    }

我已经将文本文件读入名为DataStr的字符串。我想使用fromJson方法将事件捕获到下面的JAVA类中:

public class Event {
    private String a;
    private String b;
    private String c;

    public Event() {}

}

问题是JSON在某些元素中可能有一个额外的字段“C”。我希望将所有事件解析为事件类对象,对于没有“C”字段的情况,我希望在对象中使其为空或为零。事先还不知道哪些元素将具有“C”字段。

Gson gson = new Gson();
ArrayList<Event> events = gson.fromJson(dataStr, Event.class);

利用Gson将Json转换为Java对象

使用Gson将JSON映射到POJO

利用gson将json解析为java对象

将JSON解析为java对象

如何使用GSON将json文件解析为java POJO类

共有1个答案

巴照
2023-03-14

我不确定我是否理解对了你的问题。根据我的理解,您正在尝试用java类中不可用的额外字段来转换json对象。坦率地说,我不明白你为什么想要这样,也不明白是否有可能开始。您可以通过将json转换为Map来解决这个问题。

Map Map=gson.fromjson(jsonString,Map.class);

 类似资料:
  • 这里是我被困的地方,我在哪里创建我的新Gson()来在发送数据之前解析它?

  • 问题内容: 我想使用google-gson将json数据解析为java对象。 这是我要解析的数据的示例: IsBean.java User.java RequestObj.java Test.java 错误: 问题答案: 如果没有看到的代码,我不能肯定的说,但是我很有把握地猜测该类有一个类型的字段,您可以使用它来容纳。如果是这样,那么问题在于GSON会扫描该类对象的字段,并且基于字段定义,必须创建

  • 问题内容: 我的样子如下: 现在,每个元素具有相同的结构(假设一个POJO称为MessageDefault.java)。那么我怎么能把所有东西都当作一个??呢? 我正在使用gson进行解析。我也不能更改JSON响应。 编辑:: MessageDefault.java 它只是一切的结构。但是在JSON中,的每个子项都有不同的名称,例如POJO MessageDefault.java中所反映的名称。但

  • 问题内容: 我有一个JSON,它可以是单个对象或相同对象的数组。有没有一种方法可以使用Gson解析此数据,从而区分单个对象还是数组? 我目前唯一的解决方案是手动解析json并用try catch包围它。首先,我将尝试将其解析为单个对象,如果失败,它将引发异常,然后尝试将其解析为数组。 我不想手动解析它……那将使我永远。这是正在发生的事情的想法。 这是可以是数组或单个对象的对象。 然后在与json响

  • 我有一个以以下格式返回json对象的响应: 我有一个Java类: 我想使用GSON将JSON对象映射到Java对象。 我尝试使用反序列化,它返回了JSON中嵌套值的。

  • 问题内容: 我有一个名为包含以下内容: 我知道我可以用以下方法获得阵列: 现在我想将其解析为… 最简单的方法是什么? 问题答案: 绝对最简单的方法是使用Gson的默认解析功能。 此功能的实现适用于需要反序列化为任何(例如any )的情况。 在您的情况下,您只需要获取的,然后将JSON数组解析为that ,如下所示: 在您的情况下是a ,但也可能是a ,any 或a 。 您可能需要看一下Gson A