私のアプリケーションでJSON構文解析を使用しています。 私の問題は、サーバーから自分のレスポンスStringを取得したときに、その文字列をJSON Parserと私の辞書のデータでパースしたときです。構文解析はうまくいくが、順序が維持されないということは、文字列が来るときに "中国語学習"の値が最初にあることを意味するが、それを解析して辞書にデータを渡すと、最初の要素にはならなかった。json構文解析から返されるデータの順序はjson文字列と同じではありません
私は私のコード例でこれを説明したいと思います: 文字列私が解析したい:今すぐ
NSString *respStr = [req responseString];
NSLog(@"respStr=%@",respStr);
{
"Learning Chinese": [
{
"title": "Chinese nga28Traditionalnga27 Audio FlashCards for iPad",
"function_name": "Learning Chinese"
},
{
"title": "WCC Chinese Flashcards nga28Bigramnga27 with Audio",
"function_name": "Learning Chinese"
}
],
"Business & Office": [
{
"title": "Instant Customer",
"function_name": "Business & Office"
},
{
"title": "Phone Swipe nga7 Credit Card Terminal",
"function_name": "Business & Office"
}
],
"Kids": [
{
"title": "iWriteWords nga28Handwriting Gamenga27",
"function_name": "Kids"
},
{
"title": "SoundBook nga25 audio flashcards for toddlers",
"function_name": "Kids"
}
],
"Christmas": [
{
"title": "Santanga2s Fun",
"function_name": "Christmas"
},
{
"title": "Santerrific",
"function_name": "Christmas"
}
]
}
NSMutableDictionary *dict=[respStr JSONValue];
NSLog(@"dict=%@",dict);
私が得た:その後
dict={
"Business & Office" = (
{
"function_name" = "Business & Office";
title = "Instant Customer";
},
{
"function_name" = "Business & Office";
title = "Phone Swipe nga7 Credit Card Terminal";
}
);
Christmas = (
{
"function_name" = Christmas;
title = "Santanga2s Fun";
},
{
"function_name" = Christmas;
title = Santerrific;
}
);
Kids = (
{
"function_name" = Kids;
title = "iWriteWords nga28Handwriting Gamenga27";
},
{
"function_name" = Kids;
title = "SoundBook nga25 audio flashcards for toddlers";
}
);
"Learning Chinese" = (
{
"function_name" = "Learning Chinese";
title = "Chinese nga28Traditionalnga27 Audio FlashCards for iPad";
},
{
"function_name" = "Learning Chinese";
title = "WCC Chinese Flashcards nga28Bigramnga27 with Audio";
}
);
}
:
NSLog(@"[dict allKeys]=%@",[dict allKeys]);
[dict allKeys]=(
Christmas,
Kids,
"Learning Chinese",
"Business & Office"
)
コードからは、文字列Learning Chinese
が最初ですが、辞書には4つの数字があり、allKeys
の場合は3つの数字になることは明らかです。
なぜこのことが起こっているか知っていれば、それを解決する他の方法を教えてください。私にはオーダーが必要です。サーバーから返された文字列と同じ順序でデータを表示する必要があります。
どのような提案も高く評価されます。
ありがとうございます。
は、私には見えます。 –
[Objective-C SBJSON:json配列の順序]の複製が可能です。(http://stackoverflow.com/questions/3758977/objective-c-sbjson-order-of-json-array) –