問題タブ [jsonslurper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - JSON で見つかったカスタム文字列を POGO 列挙型ケースにマッピングする
Grails アプリケーションのコンテキストでは、JSON をコマンド オブジェクトに解析します。JSON マップから POGO への自動変換は、次のようなエラーで失敗します。
org.codehaus.groovy.runtime.typehandling.GroovyCastException
:クラス ' ' のオブジェクト ' ' をクラス ' ' に
キャストできません: : 列挙定数がありません{<snip>}
groovy.json.internal.LazyMap
SomeCmd
java.lang.IllegalArgumentException
Foo.my-bar
このプレーンな Groovy MWE に絞り込みました。
このエラー
java.lang.IllegalArgumentException
: 列挙定数なしFoo.my-bar
これは予想どおりです。これまでのところ、非常に良好です。
さて、ドキュメンテーションに従って、からカスタム強制を追加すると問題が解決する可能性があるString
と思いました(こちらからも):Foo
ただし、エラーは解決しません。どうやら、JsonSlurper
それを考えると、強制をまったく使用していません
必要に応じて印刷Bar
します。
ここで何が起こっているのですか?ケース名以外JsonSlurper
で正しい列挙型ケースを選択するにはどうすればよいですか?
PS: 興味深いことに、最後から 2 番目の行を次のように変更すると、
スクリプトは を出力しnull
ます。