C#Newtonsoft JArray。 JSON不能在空数组中创建空数组

C#Newtonsoft JArray。 JSON不能在空数组中创建空数组

问题描述:

我想用Newtonsoft创建一个JSON对象。一切看起来不错,但我不能在空数组中创建空数组。我需要下面的输出...C#Newtonsoft JArray。 JSON不能在空数组中创建空数组

我的代码:

JObject rss = new JObject(
    new JProperty("query", 
    new JObject(
     new JProperty("aoi", 
     new JObject(
      new JProperty("type", "Polygon"), 
      new JProperty("coordinates", 
       new JArray(
       new JArray(
        new JArray(
        new JValue(-122.62664794921874), 
         new JValue(38.81403111409755) 
        ), 
        new JArray(
         new JValue(-122.62664794921874), 
         new JValue(38.81403111409755) 
        ) 
       ) 
       ) 
      ) 
      ) 
     ) 
     ) 
    ) 
    ); 

我能得到什么:

{ 
    "query": { 
    "aoi": { 
     "type": "Polygon", 
     "coordinates": [ 
     [ -122.62664794921874, 38.81403111409755 ], 
     [ -122.62664794921874, 39.07464374293249 ] 
     ] 
    } 
    } 
} 

我需要什么:

{ 
    "query": { 
    "aoi": { 
     "type": "Polygon", 
     "coordinates": [ 
     [ 
      [ -122.62664794921874, 38.81403111409755 ], 
      [ -122.62664794921874, 39.07464374293249 ] 
     ] 
     ] 
    } 
    } 
} 

在此先感谢

+0

如何使用标准的.NET对象并对其进行序列化? –

作为JArray构造函数的参数的单个JArray解释为应该复制到新的JArray的内容。它适用于如果你这样做:

JObject rss = new JObject(
     new JProperty("query", 
      new JObject(
       new JProperty("aoi", 
        new JObject(
         new JProperty("type", "Polygon"), 
         new JProperty("coordinates", 
          new JArray(
           new JArray(
            new JArray(
             new JValue(-122.62664794921874), 
             new JValue(38.81403111409755) 
             ), 
            new JArray(
             new JValue(-122.62664794921874), 
             new JValue(38.81403111409755) 
             ) 
           ) as Object 
         )) 
         )) 
       )) 
     );   

这使得构造函数看到它应该被插入,而不是复制。

+0

谢谢!完善。 – Optimist

+0

@优惠券商,说“谢谢”的最好方式就是接受解决问题的答案。 –