整个想法是一个 json,它包含一个对象“D”和一个字符串,它也是 json,所以它是 json 中的一个 json。
所以你有一个'外部json':{“d”:“”}
+一个内部json:{“count”:“0”,“status”:“500”,“recipes”:[]}
如果我们只是在没有 \ 的情况下插入内部 json,我们可能会得到无效的 json .. 在实践中(在这种情况下)我们不会,但我认为 lib 只是试图在安全方面,所以它转义内部 json 并将其编码为一串!
获取字符串并解析它工作正常,如下所示,一切都有效
id innerJSON = @"{\\\"count\\\":\\\"0\\\",\\\"status\\\":\\\"500\\\",\\\"recipes\\\":[]}";
id response = [NSString stringWithFormat:@"{\"d\":\"%@\"}", innerJSON];
id data = [response dataUsingEncoding:NSUTF8StringEncoding];
id outerJson = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", outerJson[@"d"]);
data = [outerJson[@"d"] dataUsingEncoding:NSUTF8StringEncoding];
id innerJson = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@ %@", innerJson[@"count"],innerJson[@"status"]);