-1
私は別のjsonオブジェクトを取得し、jsonメッセージのタイプ(売り手のリスト、クライアントのリスト、製品、注文など)を検出する必要があります。jsonのタイプを検出する
JSONタイプ1:
{"Sellers": [
{ "name":"A", "ID":5 },
{ "name":"B", "ID":4 }
]
}
JSONタイプ2:
{"Clients": [
{ "name":"A", "SelectedProduct": "DDD" },
{ "name":"B", "SelectedProduct": "CCC" }
]
}
JSONタイプ3:
{"ID": "78915"}
私はそれを解析するために、JSONの種類を検出できますか?
guard let JSON = try JSONSerialization.jsonObject(with:data, options: []) as? [String: Any],
let sellers = JSON["Sellers"] as? [[String: Any]],
let clients = JSON["Clients"] as? [[String: Any]],
let product = JSON["ID"] as? [String: Any],
else { return }
var type: JsonType
if(sellers != nil){
type = ...
}
if(clients != nil){
type = ...
}
jsonオブジェクトのタイプを検出する最も良い方法は何ですか?私はそれを検出することができますガードlet JSONエリア?
'ガードlet'をしようとしてからあなたを保持していますか? – Desdenova
あなたがしようとしていることがわかりません。 'guard let'ステートメントは、' sellers!= nil'と 'clients!= nil'を保証します。そうすれば、両方のif文が常に発生します。 – Connor
しかし、これらのフィールドをすべて別々に扱いたいのであれば、なぜそれらを全体として扱っていたのですか?あなたのガードからそれらを削除し、それらを別々にテストしてください。あなたの質問は明確ではありません。 – Moritz