当前位置: 首页 > 面试题库 >

在Objective-C中解析JSON中的JSON

周奇
2023-03-14
问题内容

我正在尝试存储从以下请求中获取的JSON中的JSON …

NSURL *URL = [NSURL URLWithString:@"http://www.demo.com/server/rest/login?username=admin&password=123"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
                                    completionHandler:
                          ^(NSData *data, NSURLResponse *response, NSError *error) {

                              if (error) {
                                  // Handle error...
                                  return;
                              }

                              if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
                                  NSLog(@"Response HTTP Status code: %ld\n", (long)[(NSHTTPURLResponse *)response statusCode]);
                                  NSLog(@"Response HTTP Headers:\n%@\n", [(NSHTTPURLResponse *)response allHeaderFields]);
                              }

                              NSString* body = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                              NSLog(@"Response Body:\n%@\n", body);
                          }];
[task resume];

得到的JSON从获得 的身体 是下面的,正如你可以看到有是JSON内的JSON,我怎么能存储 的是 JSON在
NSDictionary中 ,你可以看到,JSON是引号之间。

    [
        {
            tag: "login",
            status: true,
            data: 
            "
                {
                    "userID":1,
                    "name":"John",
                    "lastName":"Titor",
                    "username":"jtitor01",
                    "userEmail":"jtitor01@gmail.com",
                    "age":28,
                }
            "
        }
    ]

问题答案:

实际上,您拥有的是:经典JSON,其中有一个字符串“代表” JSON。

因此,由于我们可以这样做:
NSData <=> NSString
NSArray / NSDictionary <=> JSON NSData
我们只需要根据我们拥有的数据类型在它们之间进行切换。

NSArray *topLevelJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
NSString *lowLevelString = [[topLevelJSON firstObject] objectForKey:@"data"]; 
NSData *lowLevelData = [lowLevelString dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *final = [NSJSONSerialization JSONObjectWithData:lowLevelData options:0 error:nil];


 类似资料:
  • 问题内容: 我已经完成了有关iOS中JSON的Raywenderlich教程,但是我很难将其调整为适合自己的JSON文件。这是 我的JSON : 这是 我的代码 : 日志返回。 问题答案: 你这样做是不对的。您已正确将JSON数据填充到字典(名为)中。但你有一个(被称为你的主要内部)和价值的是内部数组。 正确的代码是: 了解概念。这取决于你的内心里有什么。如果它是一个数组(在Values内部),则

  • 问题内容: 您能否告诉我如何传递如下所示的JSON字符串: 我这样尝试过: 提前致谢 最好的祝福 问题答案: 请注意,您的JSON数据具有以下结构: 顶级值是具有单个属性(称为“课程”)的对象(字典) “教训”属性是一个数组 “课程”数组中的每个元素都是一个具有几个属性的对象(包含课程的字典),其中包括“眩晕” 相应的代码是: 一些观察: 在中,参数是指向指针的指针。在这种情况下,通常使用代替。如

  • 问题内容: 数组: 如何在C#中解析上述json响应 问题答案: 在您提供的字符串 不正确 的格式,该阵列应该是: 您可以使用将其转换: 该工具在nuget中也可用。 如果要使用强类型:

  • 问题内容: 我正在尝试使用C#从rest api json响应中提取一个值。 我有以下代码: 在“响应”消息中,我得到了一个json内容,如下所示: 如何从返回的json响应结果消息中提取以下嵌套值“ id”:“ 521cfcd840926a0b3500449e”? 我正在使用C#。 问题答案: 1>添加此namspace。使用Newtonsoft.Json.Linq; 2>使用此源代码。

  • 问题内容: 据我所知,Objective-C,JSON Framework,YAJL和Touch JSON 有三个JSON解析器。然后,这三个将具有自己的特征。 例如: YAJL可以用作SAX样式解析器。 JSON框架的历史比较悠久,已被广泛使用。 触摸JSON解析NSData而不是NSString。 另外,据我测试,性能比较的结果如下: [快速] YAJL > JSON框架>触摸JSON [慢]

  • 本文向大家介绍Objective-C语言XML解析,包括了Objective-C语言XML解析的使用技巧和注意事项,需要的朋友参考一下