デコーダブル作ったけどあとわからん。。
な人たち向けに、その後どうするのかを書いておきます。(備忘録)政府が出してるコロナjsonを崩したものを使って説明します。
***.swift
//これは説明せんでええ,,,?
struct CovidJson: Decodable {
let errorInfo : Errorinfo
let itemList : [Itemlist]
}
struct Errorinfo:Decodable {
let errorFlag : String
let errorCode:String?
let errorMessage:String?
}
struct Itemlist:Decodable {
let date: String
let dataName: String
let infectedNum: String
let deceasedNum: String
}
***.swift
// 入れ物
var covid = [CovidJson]()
//Jsonを持ってくるサイト
var jsonUrlString = "https://opendata.corona.go.jp/api/OccurrenceStatusOverseas?dataName=%E6%97%A5%E6%9C%AC"
//URLに変換
guard let url = URL(string: jsonUrlString) else {return}
//セッション開始
URLSession.shared.dataTask(with: url) { (data, response, error) in
//データなかったときはreturn
guard let data = data else {return}
do{
//デコードしますよ。(struct,from data)
covid = try JSONDecoder().decode(CovidJson.self, from: data)
} catch let jsonError{
print("error", jsonError)
}
}.resume()
// 上記は非同期処理なので無理やり同期させてね↓参考
// https://sussan-po.com/2020/03/01/swift-async-as-sync/
// covidにデータが入ってる
print(covid.itemlist[0].dataName)
こんだけでとれるの?って思うかもしれないけど、これだけで取れます。
ちょっと編集したけどこれだけで求めてるものは取れる。
最後に
iOSアプリ開発をしています。
主にSwiftですが、最近は熱が入ってきてFlutterも🦾
色々やってます。もし良かったら見てってください。