在Java中解析不正确命名约定的JSON数据

时间:2018-03-10 04:53:06

标签: java json parsing java-8

我有JSON数据,这在命名约定方面是不合适的,但修改数据源不是我手中的东西:

{
  "Type": "Trains",
  "globalPoint": "c84e5f61-648d-4074-b2b1-b144ea8ee876",
  "Id": "7b0c72bb-236a-49f5-9b70-4b74ed3a6096",
  "StartIds": {
    "0": [
      4103,
      4156
    ],
    "2": [
      2645
    ],
    "3": [
      1904
    ]
  },
  "Topic": "CityOneToCityTwo"
}

如果您在上面的json中看到StartIds,则其中包含0 / 2等字词,我无法将其定义为变量名称。这是我的解析器类,如上所述有问题

Class Data{  
  String type;
  String globalPoint;
  String Id;
  List<Points> startIds;        // This is where the problem lies
  String topic;
}

Points.java

@Data
@Builder
@AllArgsConstructor
public class Points {
    private int n;
}

最初我想过List<Points> startIds;Object startIds;,但它仍然失败。

关于我如何解析这些数据的任何建议?

1 个答案:

答案 0 :(得分:1)

"StartIds":可以表示为Map StringList<Points>

Map<String,List<Points>> startIds; 

而不是

List<Points> startIds;