通过JSON传递西班牙语数据

时间:2013-07-03 09:15:24

标签: iphone ios objective-c json foursquare

我从foursquare api获取位置数据,然后将此数据传递到webservice以插入database

现在,例如当我获得墨西哥城市的位置数据时,其中有一些特殊字符会产生以下错误: -

 Unrecognized escape sequence. (13443):

现在我使用以下编码进行JSON解析: -

 NSString *requestString =  [jsonstring UTF8String];

如何在 JSON 中解析特殊字符(西班牙语数据),例如Éspanol

任何解决方案?

感谢。

2 个答案:

答案 0 :(得分:1)

我之前和json也有同样的问题。我使用以下代码解决了这个特殊字符问题: -

+(NSString *)http_post_method_changed:(NSString *)url content:(NSString *)jsonContent
{
NSURL *theURL = [NSURL URLWithString:url];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20.0f];
NSData *requestData = [jsonContent dataUsingEncoding:NSUTF8StringEncoding];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[theRequest setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[theRequest setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody: requestData];
NSURLResponse *theResponse = NULL;
NSError *theError = NULL;
NSData *theResponseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
NSString *data=[[NSString alloc]initWithData:theResponseData encoding:NSUTF8StringEncoding];
NSLog(@"url to send request= %@",url);
NSLog(@"response1111:-%@",data);
return data;
}

传递你的网址和json发送,它会为你提供所需的响应。

答案 1 :(得分:0)

你用过这个吗?

NSArray *dataArray =
  [NSJSONSerialization JSONObjectWithData:_data
                                  options:NSJSONReadingAllowFragments
                                    error:&error];

确保(通过咨询forsquare api文档)提要确实是UTF-8 - 然后上面应该没有错误。

这假设API Feed正在向您发送数组,否则请使用NSDictionary