以下是我从服务器获得的回复:
{
result = {
blankfill = "[[1, [u'32354'], False, 7]]";
choice = "[[13, [3], False, 11], [10, [0], False, 3], [9, [1], False, 3], [2, [2], False, 4], [3, [1], False, 3], [1, [2], False, 3]]";
spendTime = 26;
};
retcode = 0;
subjectid = 1;
submittime = "2016-05-24T15:21:50.784";
}
choice
是我要转换为NSArray
的字符串,它还包含嵌套数组。
这是我尝试过的代码:
NSString *jsonString = [responseObject[@"result"] objectForKey:@"choice"];
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
目前,arr
始终为零。
答案 0 :(得分:1)
您需要在字符串中的任何位置将False
更改为false
。然后它将解析为JSON。
(看起来服务器端可能出现了问题。假设这应该是一个JSON数组,并且由于这个大写错误,它会以字符串形式到达。)
NSString* s = @"[[13, [3], false, 11], [10, [0], false, 3], [9, [1], false, 3], [2, [2], false, 4], [3, [1], false, 3], [1, [2], false, 3]]";
NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
NSError* err;
NSArray *arr = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err];
NSLog(@"%@", arr);
日志:
(
(
13,
(
3
),
0,
11
),
(
10,
(
0
),
0,
3
),
(
9,
(
1
),
0,
3
),
(
2,
(
2
),
0,
4
),
(
3,
(
1
),
0,
3
),
(
1,
(
2
),
0,
3
)
)