我有这个从我正在使用的 REST 服务返回的 JSON。
{
"id": "6804",
"signatories": [
{
"id": "12125",
"fields": [
{
"type": "standard",
"name": "fstname",
"value": "John"
},
{
"type": "standard",
"name": "sndname",
"value": "Doe"
},
{
"type": "standard",
"name": "email",
"value": "john.doe@somwhere.com"
},
{
"type": "standard",
"name": "sigco",
"value": "Company"
}
]
}
]
}
目前我正在寻找一种用 json4s 解析它的方法,迭代“字段”数组,以便能够更改其中不同对象的属性“值”。到目前为止,我已经尝试了一些 json 库并最终得到了json4s。
Json4s 允许我将 json 解析为 JObject,我可以尝试从中提取“字段”数组。
import org.json4s._
import org.json4s.native.JsonMethods._
// parse to JObject
val data = parse(json)
// extract the fields into a map
val fields = data \ "signatories" \ "fields"
// parse back to JSON
println(compact(render(fields)))
我已经成功地提取了这样的地图,并再次将其呈现回 JSON。但是我想不通的是,如何遍历这些字段并更改其中的属性“值”?
我已经阅读了 json4s 文档,但我对 Scala 和它的语法都很陌生,所以我遇到了困难。
问题变成了,如何遍历解析的 JSON 结果来更改属性“值”?
这是我想要实现的流程。
- 将 JSON 解析为可迭代对象
- 循环并查找某些“名称”并将其值(例如 fstname)从 John 更改为其他名称。
- 将其解析回 JSON,因此我可以将带有更新值的新 JSON 发送回来。
我不知道这是否是最好的方法,我真的很感激输入,也许有更简单的方法来做到这一点。
在此先感谢,最好的问候,
斯蒂芬·康诺