2016-07-16 19 views
0

Windows.Data.Json(JSON.NETから離れる)は、JSONをサーバーから解析しますが、キーをループするとき(foreach)にアイテムの順序が混ざっているようです。Windows.Data.Jsonオリジナルの注文を保ちます

元の順序を維持する方法はありますか?例えば

JSON:

{ 

"name1": "example", 

"name2": "example", 

"name3": "example", 

"name4": "example" 

} 

私は文字列はJsonObjectのプリントアウトを行うと、正しい順序であるように思われるが、それらからiループは、それらが異なるで出力を取得するとき注文。例えば

:このため

に出力

foreach(string name in parsedJson.Keys) 
{ 
} 

"NAME3"、 "名前2"、 "NAME1"、 "NAME4"

答えて

1

I JsonObjectから文字列を出力して正しい順序で表示されますが、それらをループすると、出力順が異なります。

私がデモを行い、問題を再現。研究の後、私はJsonObject.Keysあなたは私はあなたがNewtonsoft.Jsonを使用することをお勧め正しい順序でJOBJECTをループにしたいorder.Ifを保証するものではありません。これは、IDictionary.Keysを使用していました。

あなたは、次のコードを使用してJSONオブジェクトをループすることができます:

using Newtonsoft.Json.Linq; 
... 
String jsonStr = "{\"name1\": \"example\",\"name2\": \"example2\",\"name3\": \"example3\",\"name4\": \"example4\"}"; 
JObject obj=JObject.Parse(jsonStr); 
foreach (JProperty prop in obj.Properties()) 
{ 
    string key = prop.Name; 
    var value = prop.Value.ToString(); 
} 
関連する問題