我有很多以嵌套列表形式组织的 JSON 数据。每个列表由其他列表组成,这些列表可以包含其他列表,依此类推。最深的列表由一对经度和纬度组成,例如
[[[.....[16.353542354,48.2354242424],[16.46353535,48.2546754646]....].....]。
它看起来像这样的图表:
我基本上不知道这些列表的嵌套程度。他们一直都不同。下一个困难的部分是我需要从中获取“坐标多边形”。这意味着仅由坐标对组成的列表属于同一个多边形。例如:
[......[[16.23542424,48.2342424242],[16.2423242352354,48.12342534634],[16.35353453535,48.345635353]]......
这意味着有一个由 3 对坐标(即 3 个角)组成的多边形。我确信这可以通过某种字符串解析来解决。我想知道这是否可以通过基本的 JSON.simple(或者任何其他 API)的可能性实现。问题是 JSON 对它正在解析的数据一无所知。我必须告诉 JSON 对象是什么,并且必须使用类型转换来获取正确的数据。请在此处查看这些示例。现在我需要另一种方式,但我永远不知道数据是什么类型(“它还是另一个列表还是数据是坐标对”),因为这些列表非常动态。如何以方便的方式做到这一点?我可以编写一些带有一些“推送和弹出行为”的字符串解析算法来逐个字符地比较 JSON 字符串,但我想知道是否有更好的方法来做到这一点?
[更新]
我发现这是一种标准化的 JSON 格式,称为 GeoJSON。如果您知道如何读取数据,那就很清楚了。多多边形由多边形组成,多边形可以有孔,由多边形对象中的第二个数组表示。见规范:
多边形,多多边形