我创建了一个 servlet,它使用从 json 数据创建的字节数组来响应获取请求。我正在尝试在 iOS 中使用这些数据并使用 NSJSONSerialization 将其解析为 NSDictionary,但它失败并出现以下错误
错误域 = NSCocoaErrorDomain 代码 = 3840 “操作无法完成。(可可错误 3840。)”(字符 11 周围对象的重复键。) UserInfo = 0x6833200 {NSDebugDescription =字符 11 周围对象的重复键。}
这是我的代码:
NSString *query = @"http://localhost:8888/url?method=retrieve";
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:query]];
NSError *error = nil;
NSString *stringData = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"substring to index 255: %@", [stringData substringToIndex:255]);
NSDictionary *results = jsonData ? [NSJSONSerialization JSONObjectWithData:[stringData dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error] : nil;
NSLog(@"Response as Dictionary:\n%@", results.description);
if (error) {
NSLog(@"Error: %@", error);
}
stringData 的值为
{"APPEALS":{"APPEAL":{"AppealID":387423483,"LastEdit":"1 ...
响应作为字典返回(null)显然因为有一个错误我猜它与我的服务器将输出流中的数据作为字节[](java)发送并且它的格式不正确的事实有关在 iOS 中收到 json 时,但我不明白为什么它会在字符 11“:”处失败 仅供参考,服务器是用 Java 编写在 Google App Engine 上的,localhost url 是本地开发服务器。json 数据是使用 Jackson Generator 库创建的。谢谢!