我从使用的REST服务中获得了这个JSON。
我已经提取了一个类似这样的地图,并将其呈现为JSON。但我无法弄清楚如何遍历这些字段并更改它们中的属性“value”。我已经阅读了json4s文档,但我对Scala和它的语法都很陌生,所以我很难理解。问题是,如何迭代已解析的JSON结果以更改属性“value”?以下是我想要实现的流程:
1. 将JSON解析为可迭代对象 2. 循环查找特定的“名称”并更改其值,例如将fstname从John更改为其他名称。 3. 将其重新解析为JSON,以便可以发送带有更新值的新JSON。
我不知道这是否是完成此操作的最佳方法,我真的很感激您的意见,也许有一种更简单的方法来完成这个任务。谢谢您的帮助!
最好的问候, Stefan Konno
{
"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解析此内容的方法,遍历“fields”数组,以便能够更改其中不同对象的属性“value”。到目前为止,我已经尝试了几个json库,并最终选择了json4s。
Json4s允许我将json解析为JObject,我可以尝试从中提取“fields”数组。
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。但我无法弄清楚如何遍历这些字段并更改它们中的属性“value”。我已经阅读了json4s文档,但我对Scala和它的语法都很陌生,所以我很难理解。问题是,如何迭代已解析的JSON结果以更改属性“value”?以下是我想要实现的流程:
1. 将JSON解析为可迭代对象 2. 循环查找特定的“名称”并更改其值,例如将fstname从John更改为其他名称。 3. 将其重新解析为JSON,以便可以发送带有更新值的新JSON。
我不知道这是否是完成此操作的最佳方法,我真的很感激您的意见,也许有一种更简单的方法来完成这个任务。谢谢您的帮助!
最好的问候, Stefan Konno