3

我在 Android 中轻松做到了,但我几乎没有在 iOs 中做到这一点。我的json就像:

[{"name":"qwe","whatever1":"asd","whatever2":"zxc"}, 
{"name":"fgh","whatever1":"asd","whatever2":"zxc"}]

如果我做:

NSData *jsonData = [data dataUsingEncoding:NSUTF32BigEndianStringEncoding];

rows  = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: &error];

我可以在行中访问吗?

NSString *name = [[rows objectAtIndex:0] [objectForKey:@s"name"]];

或者我该怎么做?谢谢。

终于 NSString *name = [[rows objectAtIndex:0] objectForKey:@"name"]];成功了!:D

4

3 回答 3

3

我认为这会起作用,但是你想要:

NSString *name = [[rows objectAtIndex:0] objectForKey:@"name"];

(删除无关的方括号并@"name"用作字符串文字)。

然而,输入的 JSON 真的是 UTF-32 格式吗?

于 2013-02-15T10:22:13.907 回答
2
NSMutableArray *row= [NSJSONSerialization JSONObjectWithData: jsonData options:        NSJSONReadingMutableContainers error: &error];
        for (int i=0; i<[row count]; i++) {
            NSMutableDictionary *dict=[row objectAtIndex:i];;
            NSString * name=[dict valueForKey:@"name"];
            NSLog(@"%@",name);
        }
    }
于 2013-02-15T10:25:33.290 回答
2

假设NSJSONSerialization操作成功,只需:

NSString *name = rows[0][@"name"];

NSUTF32BigEndianStringEncoding是可疑的,json数据更常见NSUTF8StringEncoding

于 2013-02-15T10:41:00.820 回答