Ho questo JSON che viene restituito da un servizio REST che sto usando.Parsing e manipolazione di json in Scala
{
"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"
}
]
}
]
}
Attualmente sto cercando in un modo per analizzare questo con json4s, l'iterazione di matrice "campi", per essere in grado di cambiare il "valore" di proprietà dei diversi oggetti in là. Finora ho provato alcune librerie json e ho finito con json4s.
Json4s mi consente di analizzare il json in un JObject, che posso provare a estrarre l'array "fields" da.
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)))
sono riuscito ad estrarre una mappa come questo, e reso di nuovo a JSON di nuovo. Ciò che non riesco a capire, però, è come scorrere tra questi campi e modificare il "valore" di proprietà in essi?
Ho letto la documentazione di json4s, ma sono molto nuova sia per Scala che per la sintassi, quindi ho un momento difficile.
La domanda diventa, come si esegue un'iterazione su un risultato JSON analizzato, per modificare il "valore" della proprietà?
Ecco il flusso che voglio raggiungere.
- Parse JSON in oggetto iterabile
- Loop attraverso e potete trovare alcuni "nomi" e cambiare il loro valore, per esempio fstname, da Giovanni a qualche altro nome.
- Analizzalo a JSON, così posso inviare il nuovo JSON con i valori aggiornati.
Non so se questo è il modo migliore per farlo, apprezzerei molto l'input, forse c'è un modo più semplice per farlo.
Grazie in anticipo, i migliori saluti,
Stefan Konno
Qual è la domanda? – Theolodis
"come eseguire il ciclo di questi campi e modificare il" valore "di proprietà in essi?". Modificherò la domanda, per esprimere meglio la domanda, mi dispiace. –
È sempre possibile utilizzare l'operatore \\ senza deserializzare l'oggetto. – bkowalikpl