JSON 文本不是以数组或对象开头
Posted
技术标签:
【中文标题】JSON 文本不是以数组或对象开头【英文标题】:JSON text did not start with array or object 【发布时间】:2018-02-28 06:42:54 【问题描述】:使用 ios 应用程序管理 Parse-Server (/Heroku) 上的数据。 尝试保存数据时遇到以下问题。
这是发生问题的函数的代码:
func saveDataBlockOnline(_ dico: [String:String])
let psvClassName = "Goodies",
dataUnit=PFObject(className: psvClassName,
dictionary: dico)
dataUnit.saveInBackground
(succeeded:Bool, error:Error?) in
if succeeded
// Do something useful.
else print("\(#function) Error:\(error ?? "" as! Error)")
这是我得到的错误:
saveDataBlockOnline Error:Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo=NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.
我想我得到了一些我没有正确使用的 JSON 答案。那么我应该如何修改代码呢?
关于这个主题还有其他帖子,但我没有找到真正的解决方案。
更多细节可能有用:
服务器本身的数据保存工作正常。但是当我添加一些云代码(即 Parse.Cloud.beforeSave 以更好地控制事情的发生方式)时,事情开始出错了。
【问题讨论】:
提供saveInBackground
的代码
saveInBackground 不是我的代码。它是解析的一部分。如果我不使用云代码,它就可以工作,所以 saveInBackground 不是问题。
给我们展示一个dico的例子。仅从您显示的代码来看,这是唯一的罪魁祸首。
这里是一个例子:dico = ["sentence": "1969/07/20", "orderKey": "151980480109587", "explanation": "Neil Armstrong USA."]
【参考方案1】:
根据错误消息,您要解析的数据格式不正确。检查您的字典和 Object(dataUnit) 格式
【讨论】:
你的意思是dico变量? dataUnit 仅由 PFObject 生成。 是的 dico 变量 这里是一个例子:dico = ["sentence": "1969/07/20", "orderKey": "151980480109587", "explanation": "Neil Armstrong USA."] 能否分享一下这个方法的调试控制台(po dico) 什么是“po dico”?我在输入函数时做了: print("dico = (dico)") 以获取在我之前的命令中发布的结果。以上是关于JSON 文本不是以数组或对象开头的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 3 上传和图像到 Parse Server 失败:“JSON 文本不是以数组或对象开头”
Index.js 文件连续给出“JSON 文本不是以数组开头”,尽管被格式化为数组
错误:json 字符串不是以 icloud 的数组或对象开头
JSON 文本没有以数组开头 AFNetworking 错误