モノクル プロジェクトのJsonExampleを使用して、set 呼び出しがキーと値のペアの値を置き換えるか、キーと値のペアがまだ存在しない場合は作成するレンズを作成したいと思います。
ただし、これはインデックス(タイプセーフを構成できる)またはタイプセーフではないatのいずれかで表されているようです
//for replacing:
(jsObject composeOptional index("age") composePrism jsNumber).set(45)
//for creating:
(jsObject composeLens at("age")).set(JsNumber(45)) <- will accept any old json
私ができることは何ですか?
age が別の JsObject にネストされている場合、次のように拡張することもできます。
val n = (jsObject composeOptional index("nested") composePrism
jsObject composeOptional index("age") composePrism jsNumber).set(45)
「ネストされた」のキーと値のペアがまだ存在しない場合、ネストされたオブジェクトを作成してからフィールドを追加します
n(JsObject(Map.empty)) -> JsObject(Map("nested" -> JsObject("age" -> JsNumber(45)))