の第一層を無視:解析JSON私はこのようなJSONを持ってコード可能な使用とJSON
{
"success": true,
"message": "",
"result": {
"buy": [
{
"Quantity": 0.0056,
"Rate": 18527
},
{
"Quantity": 0.11431426,
"Rate": 18526
}
],
"sell":[
{
"Quantity": 8.20604116,
"Rate": 18540
},
{
"Quantity": 0.95600491,
"Rate": 18574.99999998
}
]
}
}
と、このようなJSONの別のセット:
{
"lastUpdateId": 1027024,
"bids": [
[
"4.00000000", // PRICE
"431.00000000", // QTY
[] // Can be ignored
]
],
"asks": [
[
"4.00000200",
"12.00000000",
[]
]
]
}
これら二つを解析するための最良の方法は何ですかコード可能なものを使った応答。それらは、同じ構造体を使用して解析する必要があるか、同じ構造体に変換する必要があります。 "success"
と"message"
のようなキーを使用しないので、最初のレスポンス全体の構造体を作成したくありません。私は基本的にそれらを無視して直接"result"
キーに行きたいですが、2番目の応答では、私はTotalOrderBook
と呼ばれる構造体を作成したので、私はすべてのデータを使用しています。これを行う最善の方法は何ですか?
最初のJSONレスポンスでキーと"message"
を無視し、キー"result"
の値にまっすぐになってしまいました。追加の構造体を作成せずにこれを行うことは可能ですか?
これは私が今持っているものです。私は本当に必要なのは、バイ/ビッドと売り/売りの下の値なので、別の構造体を追加することは避けたい。
let decoder = JSONDecoder()
let data = try! JSONSerialization.data(withJSONObject: value) //value is the response from Alamofire
var theWholeOrderBook:UniversalOrder!
do {
theWholeOrderBook = try decoder.decode(UniversalOrder.self, from: data)
} catch let error {
//print ("error is \(e) ** \(value)")
}
スウィフトはタイプ推論言語の 'return bid ??買う? [] 'と' catch let error'は重複して 'catch ' –