我有從我使用的REST服務返回的這個JSON。解析和操縱Scala中的json
{
"id": "6804",
"signatories": [
{
"id": "12125",
"fields": [
{
"type": "standard",
"name": "fstname",
"value": "John"
},
{
"type": "standard",
"name": "sndname",
"value": "Doe"
},
{
"type": "standard",
"name": "email",
"value": "[email protected]"
},
{
"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,從約翰到其它名稱。
- 解析回JSON,所以我可以發送帶有更新值的新JSON。
我不知道這是否是最好的方法來做到這一點,我真的很感激輸入,也許有一個更簡單的方法來做到這一點。
由於提前, 最好的問候,
斯特凡今野
有什麼問題嗎? – Theolodis
「如何遍歷這些字段並更改其中的屬性」值「?」。我會編輯問題,以更好地說出問題,對不起。 –
您可以隨時使用\\運算符而不反序列化對象。 – bkowalikpl