ios - NSJSONSerialization NSJSONReadingAllowFragments阅读

标签 ios objective-c nsjsonserialization

在以下用于解析JSON的代码中,当对象碰巧不是NSArray或NSDictionary时,将使用NSJSONReadingAllowFragments。

下面的代码可以正常工作并输出32。但是如果将32替换为abcd,则输出为null。
不知道为什么它为字符串abcd的null。

NSString *num=@"32";
NSError *error;
NSData *createdData = [num dataUsingEncoding:NSUTF8StringEncoding];
id response=[NSJSONSerialization JSONObjectWithData:createdData options:NSJSONReadingAllowFragments error:&error];
NSLog(@"Response= %@",response);

最佳答案

这是因为32是有效的JSON片段(一个数字),但是abcd不是有效的JSON片段,因为必须用引号引起来。尝试:

NSString *num=@"\"abcd\"";

产生"abcd"而不是abcd

(另外,请记住,返回的对象实际上不是NSDictionary,因此将其声明为id更为合理)

关于ios - NSJSONSerialization NSJSONReadingAllowFragments阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961025/

相关文章:

ios - UIActivityViewController 删除底部

iOS 如何在 UITextView 中内联插入 UITextField

objective-c - 如何拆分一串单词并添加到数组中 - Objective C

swift - 如何在 iOS Swift 中解析字符串化数组

ios - 解析失败

ios - 如何将新卡/来源添加到 Stripe 客户帐户?

iphone - UIButton - 触摸时保持文本黑色

ios - 卸载应用程序时删除钥匙串(keychain)项目

iphone - 调用-createDirectoryAtURL : causes crash

json - NSJSONSerialization 不处理负整数