Gauche > Archives > 2022/10/15

2022/10/15 11:40:36 UTCとおる。
#
こんにちは。JSON を扱うときに、オブジェクト型は連想リストとして読み込まれますが、これの要素にアクセスするときに assoc-ref とかじゃなくて ~ を使えるようにする方法ってないでしょうかね?
2022/10/15 11:48:41 UTCshiro
#
alistか普通のlistかって区別できないんですよね。listに対する~はlist-refになっちゃう。exact integer以外が来たらassoc-refというkludgeはあるけど、たまたまキーが整数だとはまるし。
#
ただjson読んだあとの扱いが面倒なのは感じてるんで、jsonpathみたいなものが欲しいなとは思ってます。
2022/10/15 16:00:06 UTC齊藤
#
自分のスクリプトの中でやる分には define-method しちゃってもよさそう。 (というか私はやってます……)
2022/10/15 16:04:31 UTC齊藤
#
JSON から変換したものだとキーは常に文字列なので、連想リスト一般を考慮せずにあくまで JSON から変換したものを扱うという前提ならそれで困りません。
2022/10/15 16:07:40 UTCshiro
#
アプリケーションなら使い道を固定できるのでそれでいけますね。
2022/10/15 16:12:37 UTC齊藤
#
~ の JSON (から変換したリスト) アクセス用版みたいなのを適当に用意すればそれで割と足りちゃいそうな気もしますね。
2022/10/15 16:16:46 UTCshiro
#
JSONの出力構造のバリエーションは決まってるからできますね。というかなんかそういうの書いたような覚えがあるぞ…