Restkit无法读取有效的json?

时间:2012-03-20 05:12:51

标签: ios json restkit

我刚开始使用restkit for ios。我有一个非常简单的json响应

{     “结果”:[         {             “userid”:“5964”,             “名字”:“你的名字”         }     ] }

这是一个有效的json(针对jsonlint测试)

但是,当我尝试将它与RKClient一起使用时,它不会将其视为json。这是我的代码

-(void) request:(RKRequest *)request didLoadResponse:(RKResponse *)response{

    if([request isGET]){
        if([response isJSON]){
            NSLog(@"JSON Response from Server %@", [response bodyAsString] );    
        }else{
            NSLog(@"Non JSON Response from Server %@", [response bodyAsString] );    
        }
    }

}

它始终记录“非JSON Reponse ....”但json完全有效。当我使用RKObjectMapping时会发生同样的事情;错误将是“无法找到MIME类型text / xml的解析器。

非常感谢任何帮助。

由于

3 个答案:

答案 0 :(得分:9)

如果由于任何原因你无法更改服务器头并将Mime类型返回到xml或json,你仍然可以添加mime类型'text / html'的映射以作为json处理。

只需添加:

[[RKParserRegistry sharedRegistry] setParserClass:[RKJSONParserJSONKit class] forMIMEType:@"text/html"];   

不要忘记添加相关的头文件:

#import <RestKit/RKJSONParserJSONKit.h>

适合我。

查看https://github.com/RestKit/RestKit/wiki/Using-a-Custom-MIME-Type

答案 1 :(得分:3)

Serveur响应头应该是“application / json”,而不是“text / xml”。 ; P

答案 2 :(得分:2)

我有点傻,但是一旦我添加了

,事情就解决了
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

到服务器脚本。