如何将JSON字符串转换为NSArray

卫斯理

这是我从服务器获得的响应:

{
    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始终为零。

马特

您将需要更改Falsefalse字符串中的所有位置。然后它将解析为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
    )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章