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

Posted

技术标签:

【中文标题】iOS从json字符串中获取json对象【英文标题】:iOS fetching json object from json string 【发布时间】:2017-01-02 07:12:09 【问题描述】:
@"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') 中获取数据并将其打印到日志中。

【问题讨论】:

您在尝试上述代码时遇到了什么错误? 您提供的第一个代码块不是有效的 JSON。 data 变量的值是多少? 【参考方案1】:

您正在获取 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);

【讨论】:

【参考方案2】:

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);

【讨论】:

我没有评论!这是一个答案:)

以上是关于iOS从json字符串中获取json对象的主要内容,如果未能解决你的问题,请参考以下文章

怎样从java后台获取json字符串并转换为json对象输出

怎样从java后台获取json字符串并转换为json对象输出?

js从字典里取到一个字,用啥算法最快

ios开发——如何做JSON解析器?

如何从带有 ios Swift 3 的肥皂 Web 服务方法中获取 json 数组字符串?

在greenplum pxf外部表中,从对象的json数组中获取元素时获取空字符串