2

奇妙な状況に対する一種の奇妙な質問です。Groovy コードを実行する際に表現したい大きな JSON 構造があります。JSON オブジェクトと同じ構造を反映したグルーヴィーなオブジェクトが必要です。

予想されるように、Web 検索ではほとんどの場合、groovy/json ランタイム変換に関する結果が返されますが、groovy コードを出力するものについては何も返されません。

これは怠惰だと思うかもしれませんが、実際には巨大な JSON 構造です! コンバーターがあれば、何日も節約できます。

4

3 に答える 3

3

Groovy 独自のものを使用JsonSlurperして、JSON オブジェクトを解析できます。

import groovy.json.*

def json = '{"name":"john", "surname":"doe", "languages": ["groovy", "python"]}'

def obj = new JsonSlurper().parseText(json)

assert obj.name == "john"
assert obj.surname == "doe"

assert obj.languages.containsAll("python", "groovy")

もちろん、クラスは型指定されていません。実行時にのみ認識されます。型付けしたい場合は、例に基づいてコードを記述するコードを記述できます ( jsonスキーマはまれな場合があるため)。

編集: モデル クラス コードを生成する場合は、「JSON を解析してクライアント側のソース ファイルを作成し、JSON データ構造をモデル化する」JSONGenを試すことができます。Groovy の解決策はわかりませんが、java と groovy の統合はシームレスであるため、問題なく動作するはずです。

于 2012-12-14T14:31:46.133 に答える
1

JSONのGroovy表現が必要な場合は、組み込みのJsonSlurperを介して取得できます。これにより、Javaマップと操作可能なデータのリストが提供されます。

(サードパーティの)Jacksonのデータバインディング機能を使用して、JSONエンティティを表すために作成したより具体的なカスタムオブジェクトを設定できます(この質問も参照してください)。

于 2012-12-14T14:34:28.420 に答える
-3

このような JSON パーサーを使用してみてください。そのドキュメントによると、あなたはただする必要があります

JSON.parse

データをデシリアライズする

于 2012-12-14T12:59:44.880 に答える