国とその国コードのリストのためのキー/値ペアを持つJSONファイルがあります。私はObjective-Cでそれを読んでいて、UIPicker
にそれを提示したいと思います。 問題は、JSONデータをNSDictionary
に保存すると、元の順序が失われ、UIPicker
要素の順序はかなり恣意的です(辞書には特定の順序がありません)。iOS - JSONオブジェクトを順序付けされた配列に変換する
元の注文を保存する最も簡単な方法は何ですか? 2つのファイルを作成する必要があります.1つは国コードで、もう1つは国名で同じ順序で作成し、両方を配列に読み込む必要がありますか? - 私は本当にしたいことを避ける...
[編集]要求ごととして
、JSON-データ(ローカルファイルに格納されている)の抜粋
{"af":"Afghanistan",
"al":"Albania",
"dz":"Algeria",
"as":"American Samoa",
"ad":"Andorra",
"ao":"Angola",
"ai":"Anguilla",
"aq":"Antarctica",
"ag":"Antigua and Barbuda",
"ar":"Argentina",
"am":"Armenia",
"aw":"Aruba",
"ac":"Ascension Island (Atlantic ocean)",
"au":"Australia",
"at":"Austria",
"az":"Azerbaijan",
"bs":"Bahamas",
"bh":"Bahrain",
"bd":"Bangladesh",
"bb":"Barbados",
"by":"Belarus",
"be":"Belgium",
"bz":"Belize",
"bj":"Benin",
"bm":"Bermuda",
"bt":"Bhutan",
"bo":"Bolivia",
"ba":"Bosnia",
"bw":"Botswana",
"bv":"Bouvet Island (Atlantic ocean)",
"br":"Brazil",
... }
[編集2]
私はJSONデータを読み込み、NSDictionary
に変換するためにこのコードを使用しています:
NSURL *jsonPath = [[NSBundle mainBundle] URLForResource:@"countries" withExtension:@"json"];
NSString *stringPath = [jsonPath absoluteString];
NSData *countriesJSON = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];
NSDictionary *parsedJson = [NSJSONSerialization JSONObjectWithData:countriesJSON options:0 error:nil];
あなたがデータを受信したJSON形式を共有してくださいすることができ –
あなたのコードがNSDictionaryの – CokileCeoi
にJSON配列を変換するために何が '元の順序に維持するための最も簡単な方法は何ですか? '辞書は順序付けられたコンテナではありません。元の注文というものはありません。注文したい場合は、まずそれを並べ替えてください。 – Desdenova