JSON响应编码没有返回utf

时间:2013-03-30 01:11:53

标签: ios objective-c json nsjsonserialization

我正在尝试使用jsonkit或nsjsonserialization从服务器解码json字符串,但我得到冒号:标记更改为等于=符号和逗号,更改为分号;例如 来自服务器:

"response": { "status": "OK","message": "","timestamp": "30 Mar 2013 11:33:08", 
"url":"/abc/api/getconfig/dev-game?language=en" }...

但我做的回应是:

JSONDecoder *decodedData = [[JSONDecoder alloc] initWithParseOptions:JKParseOptionStrict];
NSDictionary *parsedList = [decodedData objectWithData:responseData];

或:

NSError *jsonError = nil;
NSDictionary *parsedList = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&jsonError];

给了我:

response =     {
    message = "";
    status = OK;
    timestamp = "30 Mar 2013 11:33:08";
    url = "/abc/api/getconfig/dev-game?language=en";
};
result =     {
    meta =         {
        dateLastModified = "29 Mar 2013 11:59:17";
    };

在尝试解析时给了我很多问题。我能做到:

NSSTring *jsonString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

或将请求网址放在浏览器或jsonlint.com中,我得到了正确的格式,但我需要在字典中,因为我需要能够解析它。除非将其置于不同的数据类型中更好,因为我将尝试查找特定的键,即如果我有column_1,则列_2获取每个“列”... 提前谢谢。

1 个答案:

答案 0 :(得分:1)

JSONKitNSJSONSerialization将为您解析JSON字符串并为您创建NSDictionary / NSArray / NSString / NSNumber个对象。你不必自己解析任何东西。您正在看到等号,因为您正在打印已解析的响应对象的描述(可能使用NSLog)。