JSONを処理するGroovy
2022-02-07 13:22:55
GroovyにはJSONを変換する機能があり、関連するクラスは
groovy.json
パッケージで提供されます。この記事の参照元は
Groovyドキュメント JSONの解析と生成
.
まず、2つの簡単なクラスを定義します。
class Person {
int id
String name
List<Book> books
@Override
String toString() {
"Book(id;$id,name:$name,books:${books})"
}
}
class Book {
int id
String name
@Override
String toString() {
"Book(id:$id,name:$name)"
}
}
JsonOutput
JsonOutputクラスはGroovyオブジェクトをJSON文字列に変換するために使用されます。JsonOutputは非常に強力で、様々な基本型、配列、リスト、Map、カスタムオブジェクトなどを変換することができます。変換結果を再度呼び出すには
prettyPrint
メソッドを実行すると、フォーマットされた出力も得られるので、とても便利です。
static void parseSimpleObject() {
def book = new Book(id: 1, name: 'Thinking in Java')
def jsonOutput = new JsonOutput()
def result = jsonOutput.toJson(book)
println(result)
//formatting the output
println(jsonOutput.prettyPrint(result))
}
//result
{
"id":1,"name":"Thinking in Java"}
{
"id": 1,
"name": "Thinking in Java"
}
JsonSlurper
JsonSlurperはJsonOutputの逆で、GroovyオブジェクトをJson文字列に変換するために使用されます。ファイルや配列、バイトストリームなど様々な場所からオブジェクトを変換するために、多くのパース・メソッドを提供しています。ここでは、parseTextメソッドを呼び出して、文字列からオブジェクトを変換しています。変換の結果はMapであることに注意してください。もちろん、オブジェクトが単純であれば、GroovyのMapデストラクチャリングを使って、Mapから実際のオブジェクトを作成することができます。
static void parseSimpleJson() {
def text = '{"id":1,"name":"Thinking in Java"}'
def jsonSlurper = new JsonSlurper()
// get the Map object
def map = jsonSlurper.parseText(text)
println(map)
//convert Map to actual object
def obj = new Book(map)
println(obj)
}
JsonSlurperを使用する場合、配列はArrayListオブジェクトに、オブジェクトはMapオブジェクトに変換されることに注意してください。複雑なオブジェクト処理を行う場合は、これらの戻り値に注意してください。
詳しくは、この記事の冒頭に直接あるドキュメントのリンクをチェックしてください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例