JSON写(__SwiftValue)

时间:2019-06-12 06:16:00

标签: ios json swift swift4 swifty-json

我试图将参数[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     
}

这是print(params)之后params对象内部的内容。

["searchOptions": {
  "omit_saved_records" : false
}, "customFilters": {
  "is_next_sellers_search" : "Y"
}, "use_code_std": [
  "RSFR",
  "RCON"
]]

我正在将参数传递给此函数:

let json = try JSONSerialization.data(withJSONObject: params, options: .prettyPrinted)

这是发生错误的地方。

我希望这可以简单地工作,但是却收到此错误:

  

由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“ JSON写入(__SwiftValue)中的类型无效”

我在这里做什么错了?

1 个答案:

答案 0 :(得分:2)

JSON的{​​{1}}类型是自定义类型,无法序列化。

只需从SwiftyJSON对象中获取dictionaryObject

JSON

也不要if let params = self.myDictionary[self.selectedEntry].dictionaryObject { 。服务器不在乎

prettyPrint

请注意:建议您放弃let json = try JSONSerialization.data(withJSONObject: params) 来支持SwiftyJSON