2
{
 "success":true,
 "listings":
 {
   "50831582253b4acf09000000":
   {
     "id":"50831582253b4acf09000000",
     "title":"fddfds",
     "assets":[],
     "discussions":[]
   }
 },
 "displaymessage":"1 Listings Found"
}

私はまだ辞書と配列の間で苦労しています。上記の配列を作成するにはどうすればよいですか?

ありがとう

4

3 に答える 3

4

辞書と配列の間にはかなり大きな違いがあります。ディクショナリは、インスタンス化時に指定したキーに関連するデータエントリを格納します。例えば:

NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"object1",@"key1",@"object2",@"key2", nil];

これは辞書を割り当て/初期化し、「key1」に「object1」、「key2」に「object2」を設定するため、「key1」の値を要求する場合は、次の方法でアクセスできます。

NSLog(@"%@",[myDictionary objectForKey:@"key1"]);

ディクショナリ内のオブジェクトは、配列、ディクショナリ、ブール値、データ、日付、数値、および文字列です。

一方、配列は、配列内のデータインデックスによってデータを格納します。

NSArray *myArray = [[NSArray alloc] initWithObjects:@"object1",@"object2",@"object3", nil];

次に、次のように要求することで、配列内から特定のデータにアクセスできますobjectAtIndex:

NSLog(@"%@",[myArray objectAtIndex:1]);

配列の最初のインデックスは常に「0」であるため、これは「object2」を返します。

于 2012-10-22T15:16:42.253 に答える
2

JSONドキュメントを確認してください

JSON配列は角括弧で表されます

[ "object1", "object2" ]

JSON配列は通常、Objective-Cでは。で表されNSArrayます。これは、新しいリテラル構文と一致します

@[ @"object1", @"object2" ]

JSONオブジェクトは中括弧で表されます

{ "key" : "value" }

JSONオブジェクトは通常、Objective-Cでは。で表されNSDictionaryます。これも新しいリテラル構文と一致します

@{ @"key" : @"value" }
于 2012-10-22T15:51:07.313 に答える
0

おそらくお分かりのように、リスト内のエンティティまたは「セル」はコンマ(、)で区切られています

シリアル化された辞書では、エンティティはコロン(:)によってキーと値のペアに分割されます

"success":true

コロンの前の引用符の最初の部分がキーで、2番目の部分がそのキーに対応する値です。

シリアル化された配列は次のようになります。

{"hello", "goodbye", "world", "words", "friendship"}

エンティティは引き続きコンマで区切られていますが、引用符の外側にコロンはありません。

もう1つの重要な違いは、辞書ではキーは一意である必要があるため、次のようなものは使用しないでください。

{"success":true, ..., "success":false}

一方、配列では、要素は一意である必要はありません。

{"hello", "hello", "goodbye"}

これがお役に立てば幸いです=)

于 2012-10-22T15:12:40.010 に答える