GleamでJSONをパースする
GleamのJSONパーサーは以下のものがある
gleam_json
公式実装
jasper
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 url = "https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json"
let assert Ok(req) = request.to(url)
use resp <- result.try(httpc.send(req))
// ここからJSONをパースする処理
let assert Ok(json) = parse_json(resp.body)
let assert Ok(Array(String(today), String(tomorrow), String(two_days_after))) =
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