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

嵌套JSON的POJO格式?

须鸿祯
2023-03-14
问题内容

因此,可以说JSON响应为:

[{ "data" : { "item1": value1, "item2:" value2 }}]

当您必须首先访问数据时,如何获得值“ value1”和“ value2”?

如果字段位于根目录,那么我可以让该方法返回带有这些字段名称的POJO。

我基本上希望下面的工作。

@GET("/path/to/data/")
Pojo getData();

class Pojo
{
public String item1;
public String item2;
}

问题答案:

您可以尝试以下代码,使用Gson库将json字符串转换为具有必填字段的Pojo对象。

Gson gson = new Gson();

JsonArray jsonArray = gson.fromJson (jsonString, JsonElement.class).getAsJsonArray(); // Convert the Json string to JsonArray

JsonObject jsonObj = jsonArray.get(0).getAsJsonObject(); //Get the first element of array and convert it to Json object

Pojo pojo = gson.fromJson(jsonObj.get("data").toString(), Pojo.class); //Get the data property from json object and convert it to Pojo object

或者,您可以定义嵌套的Pojo类来解析它。

class Pojo
{
    private String item1;
    private String item2;

    //Setters and Getters
}

class Data
{
    private Pojo data;

    //Setters and Getters
}

ArrayList<Data> yourArray = new Gson().fromJson(jsonString, new TypeToken<List<Data>>(){}.getType());

编辑:尝试下面的代码以使用Retrofit获得value1和value2。

class Pojo
{
    private String item1;
    private String item2;

    //Setters and Getters
}

class Data
{
    private Pojo data;

    //Setters and Getters
}

class MyData
{
    private ArrayList<Data> dataList;

    //Setters and Getters
}

IService service = restAdapter.create(IService.class);
MyData data = service.getData();

ArrayList<Data> list = data.getDataList(); // Retrive arraylist from MyData

Data obj = list.get(0); // Get first element from arraylist

Pojo pojo = obj.getData(); // Get pojo from Data

Log.e("pojo", pojo.item1 + ", " + pojo.item2);


 类似资料:
  • 问题内容: 我想要一个连接到服务器URL的dojo网格,该URL输出以下json:{identifier:“ id” items:[{id:“ 1”,name:“ John”,大学:{name:“ XXX “,地址:” YYY“}}]。 基本上我有一个嵌套的json。我想将大学名称和大学地址表示为网格中的单独列。 我尝试使用dojox.grid.DataGrid对象并创建网格布局,但不知道如何引用

  • 我正在构建一个RESTAPI,它接受用户以以下JSON格式输入的内容。细节是嵌套的JSON对象,其键值是动态的,其关联的数据类型也是动态的。如下图所示,颜色是字符串列表,ram是整数列表,值可以是字符串、布尔值和整数类型。考虑到具体情况,如何构建请求POJO类将请求JSON转换为请求对象在键、值及其数据类型方面是动态的。在下面的JSON中,细节可以有0。。n键值,其值数据类型可以是字符串列表、整数

  • 我对JAXB编组和反编组是新手,我试图将嵌套XML反编组到Java POJO类,但在反编组对象中得到了null。另外,我想确认是否为相应的XML正确创建了POJO类。 XML文件:

  • 问题内容: 给定以下示例POJO :(假定所有属性的Getter和Setter) 可以轻松地查询数据库(在我的情况下为postgres),并使用BeanPropertyRowMapper填充Message类的列表,其中db字段与POJO中的属性匹配:(假定DB表具有与POJO属性对应的字段)。 我想知道-是否有一种方便的方法来构造单个查询和/或以这种方式创建行映射器,以也在消息中填充内部“用户”

  • 我正在编写一些使用放心及其静态编程语言扩展的测试来测试一些简单的Spring MVCendpoint。我正在尝试了解如何提取值。 一个endpoint返回<code>BookDetailsView < code>BookDetailsView是一个非常简单的Kotlin数据类,只有一个字段: 对于单个对象终结点,我有: 这与预期的一样,但尝试对<code>页应用相同的技术 我尝试了各种排列,如下面

  • 问题内容: 我想将jqgrid与嵌套子网格一起使用。但是,我发现的唯一示例是使用一个url负载数据调用和单独的调用来填充主网格,以填充子网格。 我的子网格数据以嵌套文档的形式存在于一个JSON结构中,如下面的代码片段所示(我希望各章显示为本书的子网格,而文件则应作为各章中的子网格)。 我可以使用jqgrid从嵌套的JSON文档创建子网格吗? 问题答案: 我进行了演示,演示了如何执行此操作: 该演示