3

JsonBuilder を使用して JSONObject/String を構築します。

しかし、この JSONObject/String の 1 つのフィールドの値を更新/変更するにはどうすればよいですか?

JsonBuilder を使用してこれを行う可能性はありません。では、どのショーを使用しますか?

4

1 に答える 1

8

すでに JsonBuilder に入れたコンテンツを変更する必要ある場合は、次のようにすることができます。

import groovy.json.*

def map = [ users:[ [ name:'tim', posts:43 ], [ name:'alice', posts:72 ] ] ]

JsonBuilder builder = new JsonBuilder( map )

builder.content.users[ 0 ].name = 'dave'

assert builder.toString() == '{"users":[{"name":"dave","posts":43},{"name":"alice","posts":72}]}'

しかしcontent、オブジェクトから明示的にエクスポートされていないため、これを副作用と呼び、Groovy の将来のバージョンで動作することに依存しません。

に渡す前にマップを取得することをお勧めします。それが不可能な場合は、Json 文字列を解析して結果の Map を変更し、Json を再構築するJsonBuilder必要があると思います。JsonSlurperJsonBuilder

于 2013-11-21T10:08:29.720 に答える