首页 > 解决方案 > 如何在 Java 中为字段的动态数据类型创建 POJO 类?

问题描述

我有一个动态 JSON 响应。

如果用户只有一个地址,则 JSON 响应如下:-

{
  "firstName": "Amod",
  "lastName": "Mahajan",
  "profession": "Software Tester",
  "address": {
    "houseNo": 404,
    "streetName": "Not found",
    "city": "Bengaluru",
    "state": "KA",
    "country": "IN"
  }
}

如果用户有多个地址,则 JSON 响应如下:-

{
  "firstName": "Amod",
  "lastName": "Mahajan",
  "profession": "Software Tester",
  "address": [
    {
       "houseNo": 404,
       "streetName": "Not found",
       "city": "Bengaluru",
       "state": "KA",
       "country": "IN"
   },
   {
  "houseNo": 204,
  "streetName": "No Content",
  "city": "Delhi",
  "state": "DL",
  "country": "IN"
   }
 ]
}

如何创建一个可以同时容纳两者的 POJO?如果我为地址部分创建一个 POJO,那么首先我需要有“地址地址”,第二个需要“列表地址”。我想要它在单个 pojo 中,它可以动态地容纳两者。

标签: javapojo

解决方案


我认为对应于键“地址”类型的值应该总是用 type 声明array,尽管它只有一个元素。如果不想更改 JSON 结构,POJO 类声明为以下代码。

public class Person {
    // omit other fields and getter and setter.
    List<Address> addressInfo;
}

可以看到,我们可以用List来表示一个或多个地址信息,也可以用Address[]来表示。


推荐阅读