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

如何将JSON映射到Java模型类

何星鹏
2023-03-14
问题内容

我需要将JSONobj
映射到一个类及其中的数组ArrayListAndroid并且它也应该具有所有子级数据。(也嵌套数组列表),我需要再次将更新的数据列表转换为jsonobject

我的json字符串是

  {
    "type": "already_planted",
    "crops": [
      {
        "crop_id": 1,
        "crop_name": "apple",
        "crop_details": [
          {
            "created_id": "2017-01-17",
            "questions": [
              {
                "plants": "10"
              },
              {
                "planted_by": "A person"
              }
            ]
          },
          {
            "created_id": "2017-01-30",
            "questions": [
              {
                "plants": "15"
              },
              {
                "planted_by": "B person"
              }
            ]
          }
        ]
      },
      {
        "crop_id": 2,
        "crop_name": "Cashew",
        "crop_details": [
          {
            "created_id": "2017-01-17",
            "questions": [
              {
                "plants": "11"
              },
              {
                "planted_by": "c person"
              }
            ]
          }
        ]
      }
    ]
  }

问题答案:

首先, 您需要创建要在其中映射JSON的类。

幸运的是,有一个网站,可以为你做它在这里

其次,您可以使用Google Gson库进行轻松映射

1.添加
依赖项

        dependencies {
          implementation 'com.google.code.gson:gson:2.8.6'
         }

2.从您的对象到JSON。

        MyData data =new MyData() ; //initialize the constructor 
        Gson gson = new Gson();  
        String Json = gson.toJson(data );  //see firstly above above
        //now you have the json string do whatever.

3.从JSON到object。

        String  jsonString =doSthToGetJson(); //http request 
        MyData data =new MyData() ; 
        Gson gson = new Gson();  
        data= gson.fromJson(jsonString,MyData.class); 
        //now you have Pojo do whatever

有关gson的更多信息,请参见本教程。



 类似资料:
  • 问题内容: 我在这里有一个复杂的json 我正在尝试在我的模型类“ ChromeJsonModel”中映射它,例如: 但是我收到以下错误。 我为什么会在哪里出问题? 问题答案: 您拥有非常复杂的有效负载,其中相同的属性可能具有一个或多个对象。默认情况下不会处理这种情况,因此我们需要为此类属性实现自定义反序列化器。下面我创建了代表您的有效负载的简单模型: 如您所见,它是-es属性。让我们为这些属性实

  • 我试图将请求体从邮递员映射到spring boot实体,

  • 在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗

  • 我试图使用http://modelmapper.org/表示DAO和模型类的库- 模型类- 道类- 公共类主题{私有字符串名称; 映射逻辑 ModelMapper似乎不起作用,它给我提供了主题类项目,而不是主题模型类项目

  • 问题内容: 我们有一张有很多列的大桌子。移至MySQL Cluster后,由于以下原因无法创建表: 错误1118(42000):行大小太大。不包括BLOB在内的已使用表类型的最大行大小为14000。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB 举个例子: 这是用于存储配置参数的表。我在想,我们可以将一些列合并为一个列,并将其存储为JSON对象,然后将其转换为Java对象。 例

  • 当json更改为(小写命名与Java字段名相同)时工作正常: 但是,我需要在JSON中使用大写字段命名。 看起来不起作用。 是正确的映射吗?