MVC Json序列化,嵌入式列表重新排序

时间:2015-01-27 16:56:40

标签: c# json asp.net-mvc serialization

我希望你能帮助我。我有一个相当复杂的对象来表示geoJson数据。该类是通过将一些geojson放入找到的here转换器中生成的。

当我反序列化转换并存储到数据库中时生成的代码工作正常,但是当我来检索数据并重新序列化时,我得到了一些非常奇怪的行为。

以下是我的json的简短片段:

{"type":"FeatureCollection",
 "crs": {"type":"name",
         "properties":{ "name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},
 "features":[
   {"type":"Feature",
    "properties":{"name":"AB","color":"#0E0299"},
    "geometry":{"type":"MultiPolygon",
                "coordinates":[[[[56.8860559718878,-2.21295884939764],
                                 [-2.22418043724705,56.8874548172591],
                                 [56.8873756021234,-2.22608015201419],      
                                 [-2.24113736145235,56.8942204769533],
                                 [56.8953863168858,-2.24940218298088],
                                 [-2.25140561654796,56.8950015957031],
                                 [56.8950244655219,-2.25393237467251],
                                 [-2.26499735012973,56.8885090148966],
                                 [56.8827985864266,-2.28369393347917]]]]}}]}

我会解释错误,而不是把它放在两次。 坐标列表中的每个其他条目都是相反的。所以第二对价值又回到了前面。

然而,当我在序列化之前查看原始类中的数据时,它们的顺序是正确的(即56.8874 ......首先是-2.2241 ....)

如果你将json放入我链接的类生成器中,它基本上会创建我正在使用的类。

导致问题的是以下属性:

public List<List<List<List<double>>>> coordinates { get; set; }

首先,我认为它很可怕,但除此之外,很难看出到底发生了什么。

我的问题是:

如何在列表中维护坐标的顺序,因为这些坐标表示沿路径的步骤。当我在世界地图上绘制它们时,通过反转每个其他坐标,它会在世界的两个边界之间跳跃,这是完全错误的。

如果您需要更多信息或我的问题不明确,请告诉我。

0 个答案:

没有答案