-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 项empty的数组。

如何对标签进行反序列化?

编辑对不起大家,我错了。它工作正常,如果我用

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 回答