2017-06-22 1 views
0

は、私はこのようなJSON構造を取得しようとしているオブジェクト要素の1つが無効であるかのようにシリアル化エラーが発生する:JSONシリアライゼーションは

["settings": [["value": 1, "tag": active], ["value": 1, "tag": active]]] 
2017-06-22 15:37:59.078 TestPlayground[57075:19147452] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (_SwiftValue)' 

問題のある箇所?あなたが間違った型の注釈付けされている

答えて

1

、両方の辞書が[String:Any]

let ele : [String:Any] = ["tag" : "active", "value" : 1] 
let ele2 : [String: Any] = ["tag" : "active", "value" : 1] 

あるあなたはSwiftyJSONが仕事をやらせない限り、基本的にはJSONSerializationJSONオブジェクトをシリアル化することはできません。

サイドノート:を印刷しないでください。 JSONをサーバーに送信する場合。サーバーはテキストの書式設定については気にしません。

1

辞書の種類が間違っていますが、値はAnyであり、JSONではなくJSONではなくAnyである必要があります。

正しい構文は[String:Any]です。

let ele : [String:Any] = ["tag" : "active", "value" : 1] 
let ele2 : [String:Any] = ["tag" : "active", "value" : 1] 

そして今、あなたは自分の価値観を介して取得することができる必要があります:

let tag = ele["tag"] // active 
関連する問題