0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Swift】Jsonどうやって取り込むん?

Last updated at Posted at 2021-05-17

デコーダブル作ったけどあとわからん。。

な人たち向けに、その後どうするのかを書いておきます。(備忘録)

政府が出してるコロナ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も🦾
色々やってます。もし良かったら見てってください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?