JSONSerialization 没有在服务器发送时序列化数据
Posted
技术标签:
【中文标题】JSONSerialization 没有在服务器发送时序列化数据【英文标题】:JSONSerialization did't serialised data as server send 【发布时间】:2019-11-07 10:57:05 【问题描述】:。它反转数据。我使用后端的数据过滤器 API。它发送准确的数据,我也检查了邮递员和安卓端,但 ios 代码改变了响应。
do
if let json = try JSONSerialization.jsonObject(with: usableData, options: .mutableLeaves) as? [String: Any]
catch let error
OperationQueue.main.addOperation()
SVProgressHUD.dismiss()
但如果我将数据转换为字符串,那么它的显示是正确的。为什么?
var jsonString : String?
jsonString = String.init(data: data, encoding: String.Encoding.utf8)
【问题讨论】:
你得到什么错误?顺便说一句,mutableLeaves
在 Swift 中完全没用。
那么请建议什么是正确的形式?其实我没有使用任何阅读选项。
不,我是说jsonString
的开头。并将其添加到问题中,而不是在 cmets 中。再次去掉options
参数,默认值为no options
Dictionary
是无序的,您只需要使用键访问所需的值。
字典没有顺序。字典数组
【参考方案1】:
最后,我找到了解决方案。服务器以字典形式发送超过 100 个键的数据,格式不正确,使用这种格式,我们的 json 序列化无法序列化从服务器获取的数据。所以我们决定将结构从字典更改为数组。
格式不正确
1025
id:1025
name:xyz
area:23123
1026
id:1026
name:xyz
area:23123
1027
id:1027
name:xyz
area:23123
正确的形式
[
id:1025
name:xyz
area:23123
,
id:1026
name:xyz
area:23123
,
id:1027
name:xyz
area:23123
]
【讨论】:
以上是关于JSONSerialization 没有在服务器发送时序列化数据的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 JSONSerialization 序列化字典包含 \ 字符
JSONSerialization AnyObject SWIFT3 转换问题
JSONSerialization 返回错误,但是 php 解析器