这是Argonaut 镜头文档中示例的简化版本:
import argonaut._, Argonaut._
val obj: Json = Parse.parseOption("""{"a":{"b":"x","c":2}}""").get
val lens1 = jObjectPL >=> jsonObjectPL("a") >=>
jObjectPL >=> jsonObjectPL("b") >=> jStringPL
lens1.mod(_ + "y", obj)
// res0: argonaut.Json = {"a":{"b":"xy","c":2}}
你如何对数字字段做类似的事情?例如,假设我们想将上面1
的数字相加obj
,得到结果
// res1: argonaut.Json = {"a":{"b":"x","c":3}}
我的第一次尝试是尝试
val lens2 = jObjectPL >=> jsonObjectPL("a") >=>
jObjectPL >=> jsonObjectPL("c") >=> jNumberPL
lens2.mod(_ + 1, obj)
但是最后一行没有编译。