GleamでJSONをパースする
GleamのJSONパーサーは以下のものがある
公式実装
JSONデータを解析するためのユーティリティ集
gleam_jsonはJSONのパースをdynamic型を使いながら行なうので非常に面倒臭い。
なのでjasperを使うのをオススメする。
以下は気象庁APIを使って東京の今日/明日/明後日の天気を取得するコード。
要素をパイプラインで探索できるため(gleam_jsonと比較して)処理が非常に書きやすい。
code:rust
import gleam/http/request
import gleam/httpc
import gleam/io
import gleam/result
import jasper.{Array, Index, Key, Root, String, parse_json, query_json}
pub fn main() {
let assert Ok(req) = request.to(url)
use resp <- result.try(httpc.send(req))
// ここからJSONをパースする処理
let assert Ok(json) = parse_json(resp.body)
json
|> query_json(
Root
|> Index(0)
|> Key("timeSeries")
|> Index(0)
|> Key("areas")
|> Index(0)
|> Key("weathers"),
)
io.println(today)
io.println(tomorrow)
io.println(two_days_after)
Ok(resp)
}
/icons/hr.icon