错误:json 字符串不是以 icloud 的数组或对象开头
Posted
技术标签:
【中文标题】错误:json 字符串不是以 icloud 的数组或对象开头【英文标题】:Error : json string did not start with array or object for icloud 【发布时间】:2014-02-13 09:08:19 【问题描述】:我是第一次使用 iCloud。我成功地将数据上传到 iCloud 数据库。
我编写了以下代码来检索数据:
[[iCloud sharedCloud] retrieveCloudDocumentWithName:
@"SessionInfo.plist" completion:
^(UIDocument *cloudDocument, NSData *documentData, NSError *error)
NSError *error;
id dict = [NSJSONSerialization
JSONObjectWithData:documentData options:NSJSONReadingMutableLeaves error:&error];
这里的 dict 是 nil。错误消息是“json string did not start with array or object for iCloud
”。
【问题讨论】:
This question 非常相似——您是从您的帐户和 user3305252 的帐户发帖吗?如果是这种情况,请将您的问题合并到一个并删除另一个。 【参考方案1】:这不是错误消息,因为这不是NSJSONSerialization
可以返回的错误。错误消息很可能类似于 The data couldn’t be read because it isn’t in the correct format
或 JSON text did not start with array or object and option to allow fragments not set.
如果您希望人们知道您在说什么,请在提问时包含确切错误消息。
假设错误与我认为的匹配,答案很简单:您的 documentData
对象不包含有效的 JSON。结果NSJSONSerialization
无法将其转换为字典。该方法的第一个参数必须包含编码为 NSData
对象的有效 JSON 数据。
无法确定这是为什么,因为您没有描述您正在使用的数据。但是,由于您使用的文件名是 SessionInfo.plist
,因此您可能正在使用属性列表。 属性列表不是 JSON。有效的属性列表文件格式包括 XML、二进制(未记录的格式)和 ASCII(已过时但仍然可读)。这些都不是 JSON,也不能与 NSJSONSerialization
一起使用。
【讨论】:
以上是关于错误:json 字符串不是以 icloud 的数组或对象开头的主要内容,如果未能解决你的问题,请参考以下文章
iOS App 接收格式正确的 JSON 但仍返回不是以数组或对象开头
JSON 文本没有以数组开头 AFNetworking 错误