5
{"User":{"id":"42","name":"martin"}}

将我的 NSData 转换为 NSString 会返回这个似乎完全有效的 JSON,但是方法:

[NSJSONSerialization isValidJSONObject:data]

说这不是一个有效的 JSON 对象。

谁能指出我犯的错误或想到发生这种情况的原因?

4

1 回答 1

9

我敢打赌,您的字符串中有一个不可打印的字符,例如,使数据无效。

声明一个NSError* error变量,然后调用[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]方法来尝试转换 JSON:显然,如果您的数据被认为是无效的,它将返回nil,但至少您将在此NSError* error之后对变量中的错误进行描述。

NSData* data = ... // your data
NSError* error = nil; // Declare a variable to hold the error upon return
id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; // Try to convert your data
NSLog(@"obj: %@ ; error: %@", error); // Log the decoded object, and the error if any
于 2013-04-16T19:07:49.817 回答