問題タブ [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.

0 投票する
1 に答える
398 参照

json - JSON で見つかったカスタム文字列を POGO 列挙型ケースにマッピングする

Grails アプリケーションのコンテキストでは、JSON をコマンド オブジェクトに解析します。JSON マップから POGO への自動変換は、次のようなエラーで失敗します。

org.codehaus.groovy.runtime.typehandling.GroovyCastException:クラス ' ' のオブジェクト ' ' をクラス ' ' に
キャストできません: : 列挙定数がありません{<snip>}groovy.json.internal.LazyMapSomeCmd
java.lang.IllegalArgumentExceptionFoo.my-bar

このプレーンな Groovy MWE に絞り込みました。

このエラー

java.lang.IllegalArgumentException: 列挙定数なしFoo.my-bar

これは予想どおりです。これまでのところ、非常に良好です。

さて、ドキュメンテーションに従って、からカスタム強制を追加すると問題が解決する可能性があるStringと思いました(こちらからも):Foo

ただし、エラーは解決しません。どうやら、JsonSlurperそれを考えると、強制をまったく使用していません

必要に応じて印刷Barします。

ここで何が起こっているのですか?ケース名以外JsonSlurperで正しい列挙型ケースを選択するにはどうすればよいですか?


PS: 興味深いことに、最後から 2 番目の行を次のように変更すると、

スクリプトは を出力しnullます。