Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC Json序列化,嵌入式列表重新排序_C#_Json_Asp.net Mvc_Serialization - Fatal编程技术网

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

C# MVC Json序列化,嵌入式列表重新排序,c#,json,asp.net-mvc,serialization,C#,Json,Asp.net Mvc,Serialization,我希望你能帮助我。我有一个相当复杂的对象来表示geoJson数据。该类是通过将一些geojson放入找到的转换器中生成的 当我反序列化转换并存储到数据库中时,生成的代码可以正常工作,但是当我检索数据并重新序列化时,我会遇到一些非常奇怪的行为 下面是我的json的一个简短片段: {"type":"FeatureCollection", "crs": {"type":"name", "properties":{ "name":"urn:ogc:def:crs:OGC:1.3:CR

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

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

下面是我的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; }
公共列表坐标{get;set;}
首先,我认为这很可怕,但除此之外,很难看到到底发生了什么

我的问题是:

如何保持列表中的坐标顺序,因为这些坐标表示路径上的步骤。当我在世界地图上绘制其他坐标时,它会在世界的两边跳跃,这是完全错误的


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

您使用的是什么序列化程序?您可以显示用于序列化和反序列化的代码吗?@dbc我使用标准的c#mvc序列化程序,因此我的代码看起来类似于下面的返回json(geoJsonObect)。我要到明天才能发布确切的代码,但geoJsonObect是转换器刚刚重命名生成的最外层对象。在为上面的JSON生成类之后,我尝试使用JSON.NET和JavaScriptSerializer反序列化然后序列化上面的JSON字符串,但我无法重现您的问题。X和Y坐标未进行转置。你能试着做一个展示这个bug的例子吗?@dbc我试试看,让你看看。@dbc,原来问题不在序列化中。在我的LINQ中,当我合并各种foreach循环以生成单个LINQ语句时,出现了一些混乱并重新安排了数据。在我的一生中,我看不到它是什么,但回到foreach循环后,它的工作没有任何问题。我最初的测试失败了,结果我得出了错误的结论。感谢您的调查:-)