下位互換性の理由から、API からの JSON 応答を変換するライブラリを作成しています。そして、私がする必要があるのは、任意の JSON を取り込んで、特定のフィールド名を変更することです。私はscalaとargonautを使用していますが、フィールド名を変更するドキュメントや例には何も表示されず、値のみが表示されます。
質問する
1158 次
2 に答える
1
これを行う特に良い方法はわかりませんが、オブジェクトのフィールドを置き換えてカーソルで使用するヘルパーを作成するのはそれほどひどいことではありませんwithObject
。
def renameField(before: JsonField, after: JsonField)(obj: JsonObject) =
obj(before).map(v => (obj - before) + (after, v)).getOrElse(obj)
Parse.parseOption("""{ "a": { "b": { "c": 1 } } }""").flatMap { json =>
(json.hcursor --\ "a").withFocus(_.withObject(renameField("b", "z"))).undo
}
これはSome({"a":{"z":{"c":1}}})
期待どおりに返されます。
于 2014-01-21T19:10:47.583 に答える