Posted 2021-04-17 11:20:40 GMT
仕事でjsonデータを扱うのですが、データ形式自体が開発中のため、開発者によってキー名のケーススタイルがぶれるという事態が発生しました。
それはとりあえず統一すれば良いのですが、データのぶれにより既存のアプリがデータを上手く扱えなくなってしまったので、当座でアプリを機能させるためには、キー名を正規化する必要があります。
しかし、既存のコードのキー名の正規化がまためんどくさいので、リテラル表記の部分はリーダーマクロを使って正規化してみることにしました。
(ql:quickload 'kebab)
(set-dispatch-macro-character #\# #\^
(lambda (srm chr arg)
(declare (ignore chr arg))
(kebab:to-camel-case (read srm T nil T))))
(st-json:getjso #^"foo_bar_baz" (st-json:jso "fooBarBaz" 42))
→ 42
t
まあ、急場しのぎですが、こういう時はリーダーマクロが便利ですね。
■
HTML generated by 3bmd in LispWorks 7.0.0