iOS从json字符串中获取json对象

时间:2017-01-02 07:12:09

标签: ios objective-c json

@"SaveRegistrationIDResult" : @"{\"Table\":[{\"Return_Code\":1,\"Return_Message\":\"ALREADY REGISTERED\"}]}"

我发现无法从这个json字符串中获取数据。

我使用此代码将表Table Object作为NSDictionary。

NSMutableDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];          
NSData *processedJsondata = [jsonData objectForKey:@"SaveRegistrationIDResult"];

但是我在前面尝试的所有内容都会出错。

我想从Table数组中获取数据('Return_Code')并将其打印在Log中。

2 个答案:

答案 0 :(得分:3)

您正在获取json字符串,因此您可以将其解析为

  id jsonString = @"{\"Table\":[{\"Return_Code\":1,\"Return_Message\":\"ALREADY REGISTERED\"}]}";  // or [yourDictionary objectForKey : @"SaveRegistrationIDResult"];

    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

现在您可以从上面的对象中获取任何键的值,例如

   NSArray *arr = [jsonObject objectForKey : @"Table"];

   NSLog(@"your result : %@", arr);

答案 1 :(得分:0)

Lion的评论有效。 这就是我获取价值的方式。欢迎任何优化。

NSMutableDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

        NSString *processedJsondata = [jsonData objectForKey:@"SaveRegistrationIDResult"];

        NSData *tableData = [processedJsondata dataUsingEncoding:NSUTF8StringEncoding];

        NSDictionary *tableJsonObject = [NSJSONSerialization JSONObjectWithData:tableData options:0 error:nil];
        NSArray *tableArray = [tableJsonObject objectForKey:@"Table"];
        NSDictionary *tableObject = [tableArray objectAtIndex:0];
        NSString *reposnseCode = [tableObject objectForKey:@"Return_Message"];


        NSLog(@"%@",reposnseCode);