【发布时间】:2015-06-09 11:22:41
【问题描述】:
我正在使用气象局获取天气数据,他们在英国有 171 个气象站点。这将进入一个 mongo 数据库。由于天气站点的传感器和功能不同,因此您从中获取的数据也不同。下面显示了两个站点的示例。
我的问题是,如果数据可以改变,你如何 POJO 这样的 JSON 结构。对于这样的实例,最好的方法是什么。
{
"_id": ObjectId("54ca68c8ccf2562b665edb53"),
"dataDate": "2015-01-29T16:00:00Z",
"i": "3609",
"lat": "51.565",
"lon": "-3.981",
"name": "MUMBLES HEAD",
"country": "WALES",
"continent": "EUROPE",
"elevation": "32.0",
"Period": {
"type": "Day",
"value": "2015-01-29Z",
"Rep": {
"D": "W",
"G": "37",
"H": "73.8",
"P": "996",
"S": "13",
"T": "4.9",
"Pt": "F",
"Dp": "0.6",
"MinSinceMidnight": "240"
}
}
}
不幸的是,其他站点的传感器等较少,因此数据可能如下所示:
{
"_id": ObjectId("5576c770e4b046add9b0126f"),
"dataDate": "2015-06-09T10:00:00Z",
"i": "99159",
"lat": "50.61359",
"lon": "-1.95875",
"name": "SWANAGE",
"country": "ENGLAND",
"continent": "EUROPE",
"elevation": "10.0",
"Period": {
"type": "Day",
"value": "2015-06-09Z",
"Rep": {
"H": "59.7",
"T": "13.6",
"Dp": "5.9",
"MinSinceMidnight": "600"
}
}
}
【问题讨论】:
-
我认为您有很多方法可以完成这项任务。正如我所见,数据仅在 Rep 对象中有所不同。因此,例如,您可以对包含所有其他字段的类进行建模,并指定 Rep 字段是例如地图。另一种方法是使用所有可能的值指定类并使用注释使它们成为可选的。
-
一种可能的方法是创建所有可能字段的详尽列表,并实现一个包含所有字段的类。然后,只需使用 null 初始化缺失值。