groovy から始めた Tcl 開発者として、groovy でのリストとマップのサポートに少し驚いています。多分私はここで何かを逃しています。
私は、文字列、リスト、および配列/マップを tcl でオンザフライで変換することに慣れています。Tclでは、次のようなもの
"['a':2,'b':4]".each {key, value -> println key + " " + value}
groovy の場合と同様に、 each コマンドは文字列の各文字をステップ実行します。
split コマンドや tokenize コマンドなどを簡単に使用できるため、これは大きな問題になりますが、シリアル化されたリストまたはマップは単なる「a:2,b:4」ではないため、解析が少し難しくなります。
griffon の開発者は stringToMap ライブラリ ( http://code.google.com/p/stringtomap/ ) を使用しているようですが、この例ではシリアル化されたマップも処理できません。
だから私の質問は今です: groovy でマップまたはリストを解析する最良の方法は何ですか?
乾杯、ラルフ
PS:それはグルーヴィーな質問ですが、URLを介してマップを渡したいgrailsにはこの機能が必要なので、grailsでタグ付けしました
更新:これは私にとってまだ未解決の質問です...同じ問題を抱えている人のための更新があります:
- マップを文字列に変換すると、 a
.toString()
は、すべての場合にマップに戻すことができない結果になりますが、 は.inspect()
マップに評価できる文字列を提供します! - Grails には
.encodeAsJSON()
andがありJSON.parse(String)
ます - どちらもうまく機能しますが、パーサーが JSON 関数で何をするかはまだ確認していません (セキュリティ上の問題の可能性があります)。