Json结构中的混乱

时间:2016-07-08 10:34:10

标签: json gson unmarshalling

我正在创建一个json配置来创建一个包含多个小部件的仪表板。 我将读取该json文件并使用Gson从中创建pojo。 Java类的结构如下:

public class Widgets {
  //Some other variables
  private List<Widget> widgets = new ArrayList<>();
  //some more variables and methods
}
public interface Widget{}
public class MeterWidget implements Widget{
  //some meter widget variables
}
public class GraphWidget implements Widget{
  //some graph widget variables
}

现在我想在json中使用同一类型的多个小部件声明小部件。如下所示:

{
  "widgets": [
    {
      "meterWidget": {
      },
      "meterWidget": {
      },
      "graphWidget": {
      }
    }
  ]
}

我知道这个json不正确,因为我们不能在单个对象中有多个具有相同名称的项目(在本例中为meterWidget),但我无法想到任何可以帮助我的结构与上面的类结构。也没有必要在数组中使用小部件,因为我没有在此结构中维护任何顺序。请帮忙。

由于 拉曼

1 个答案:

答案 0 :(得分:1)

您可以将类型设置为json中的参数,如下所示:

{
    "widgets": [
        {
            "type": "meterWidget",
            "someParam": "stuff"
        },
        {
            "type": "meterWidget",
            "someParam": "stuff"
        }
    ]
}