我正在尝试从此link获取数据并将其存储在NSArray
中回复格式:
data(
[
"Mumbai, MH, India",
"Mumford, NY, United States",
"Mumford, TX, United States",
"Navi Mumbai, MH, India",
"New Mumbai, MH, India"
]
)
尝试像常规的JSON响应,但没有获得任何数据。
请帮帮我......
提前致谢。
答案 0 :(得分:2)
在你的php中可能是返回数组值。所以不要使用json_encode并返回值的JSON表示。
并使用Objective-C代码,如
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
答案 1 :(得分:2)
我认为这可能是问题..
具有数组响应的JSON将是[x,x,x,x,x] .. 但你的json是数据([x,x,x,x,x]);这就是为什么你没有在jsonserialization中得到正确的答案。
NSArray *response = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
具有字典响应的JSON将是{key = data,key = data,key = data}
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
当您尝试转换
时,您的json会收到以下错误(JSON text did not start with array or object and option to allow fragments not set.)
你的json不符合这两种格式。你能检查一下吗?试试
答案 2 :(得分:2)
这是一个JSONP响应,它在回调函数data
中包装了json响应。
删除callback
参数并尝试再次解析
答案 3 :(得分:1)
我的眼睛看起来不像JSON那样,但是你可以把这个输入传递给NSJSONSerializer(我在考虑JSONObjectWithData:options:error:
API)并得到一个Objective-C对象出来了
答案 4 :(得分:1)
尝试使用以下代码
NSString *jsonString = [[NSString alloc] initWithData:self.responseData encoding:NSUTF8StringEncoding];
NSMutableDictionary *jsonDictionary = [jsonString JSONValue];
NSLog(@"%@", jsonDictionary);
答案 5 :(得分:1)
你可以尝试这段代码..这不是完美的..但你可以在这里检索数据。
NSError *err = Nil;
NSURL *url = [NSURL URLWithString:@"http://gd.geobytes.com/AutoCompleteCity?callback=data&q=mum"];
NSData *data1 = [NSData dataWithContentsOfURL:url options:NSDataReadingMappedIfSafe error:&err];
NSLog(@"%@",data1);
NSString *json_string = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",json_string);
NSString *json = [json_string substringFromIndex:4];
NSLog(@"%@",json);
NSCharacterSet *charsToTrim = [NSCharacterSet characterSetWithCharactersInString:@"()"];
NSString *json1 = [json stringByTrimmingCharactersInSet:charsToTrim];
NSLog(@"%@",json1);
if ([json1 length]> 0)
{
json1 = [json1 substringToIndex:[json1 length]-2];
}
NSLog(@"returnResponse %@",json1);
NSMutableArray *a = [[NSMutableArray alloc]init];
[a addObject:[json1 componentsSeparatedByString:@","]];
NSLog(@"%@",a);
NSLog(@"%@",[a objectAtIndex:0]);
答案 6 :(得分:1)
我认为符合JSON资格的JSON字符串的响应字符串将如下所示
{
"array": [
1,
2,
3
],
"boolean": true,
"null": null,
"number": 123,
"object": {
"a": "b",
"c": "d",
"e": "f"
},
"string": "Hello World"
}
确保从服务获得的响应是JSON字符串