Qed*_*rix 2 json ios swift swifty-json swift4
我试图将参数 [String:Any] 值传递给 JSONSerialization.data 并且每次都会抛出错误。
我知道 [String:Any] 字典的值是 Swifty.JSON 对象。但我无法将它们转换为 NSDictionary 对象。
我从另一个字典填充参数,如下所示:
var params = [String:Any]()
for (key, value) in self.myDictionary[self.selectedEntry] as! JSON {
print("\(key) - \(value.description)")
params[key]=value
}
Run Code Online (Sandbox Code Playgroud)
这就是 print(params) 之后 params 对象内部的内容。
["searchOptions": {
"omit_saved_records" : false
}, "customFilters": {
"is_next_sellers_search" : "Y"
}, "use_code_std": [
"RSFR",
"RCON"
]]
Run Code Online (Sandbox Code Playgroud)
我将参数传递给这个函数:
let json = try JSONSerialization.data(withJSONObject: params, options: .prettyPrinted)
Run Code Online (Sandbox Code Playgroud)
这就是错误发生的地方。
我希望这能简单地工作,但我得到了这个错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“JSON 写入中的类型无效 (__SwiftValue)”
我在这里做错了什么?
JSON的类型是SwiftyJSON自定义类型,无法序列化。
dictionaryObject只需从JSON对象中获取
if let params = self.myDictionary[self.selectedEntry].dictionaryObject {
Run Code Online (Sandbox Code Playgroud)
并且不要prettyPrint。服务器不关心
let json = try JSONSerialization.data(withJSONObject: params)
Run Code Online (Sandbox Code Playgroud)
注意:我们鼓励您放弃SwiftyJSON支持Codable。
| 归档时间: |
|
| 查看次数: |
10044 次 |
| 最近记录: |