2017-05-03 14 views
2

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

standart .NETオブジェクトを使用してシリアル化するのはどうですか? –

答えて

1

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

@Optimist、 "ありがとう"と言える最善の方法は、あなたの問題を解決すれば答えを受け入れることです。 –

関連する問題