私が使用している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