-1

json文字列の配列を逆シリアル化しようとしています。jsonはこんな感じ

{
   "id": "2559",
    "tags": [
        "Tag1",
        "Tag2"
    ]
}

私のコードは

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData  options:kNilOptions error:nil];
myEntity= [[MyEntity alloc] init];

myEntity.id          = [json objectForKey:@"id"];
myEntity.tags        = [json objectForKey:@"tags"];

そして MyEntity は

@interface MyEntity: NSObject{
    NSString *id;
    NSArray *tags;
...

私の問題は、タグの値を表示できないことです。myEntity.tags は 2 つの項目がの配列です。

タグをデシリアライズするにはどうすればよいですか?

編集 申し訳ありませんが、私は間違っていました。タグをログに記録すると、正常に動作します

NSLog(@"%@", [json objectForKey:@"tags"]);
NSLog(@"%@", myEntity.tags);

同じログを見ることができます

(
    tags1,
    tags2
)

私はこれを見たログの近くのエリアで混乱していました

tags = (NSArray *) 0x07... @"2 objects"
    [0]
    [1]

みんなに感謝し、私の間違いをもう一度申し訳ありません

4

1 に答える 1

5

これはコメントするには長すぎますが、コメントの引きずる会話に変わりつつあります。

使用する正確なコードをコピーして貼り付けないでください。

あなたが与えたJSONを使用すると、すべて正常に動作します

NSString *JSONString =
@"{"
  @"\"id\": \"2559\","
  @"\"tags\": ["
    @"\"Tag1\","
    @"\"Tag2\""
  @"]"
@"}";

NSData *JSONData = [JSONString dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:JSONData
                                                     options:kNilOptions
                                                       error:nil];
NSLog(@"%@", [json objectForKey:@"tags"]);
//=> 2013-02-12 16:52:24.076 Test[52992:c07] (
//     Tag1,
//     Tag2
//   )

明確さの欠如による無限のコメントスレッドが終了したら、この回答を削除します

于 2013-02-12T16:56:56.180 に答える