1
我可以如何輕鬆地轉換數據? 我可以搜索哪些有趣的數據,f。例如:用升降機轉換json
json \\ fieldName1 \\ fieldName2 \\ fieldName3
但我怎麼能這個搜索修改值? F。前
json transform{
case JField(x,y) => JField(x, z)
}
我可以如何輕鬆地轉換數據? 我可以搜索哪些有趣的數據,f。例如:用升降機轉換json
json \\ fieldName1 \\ fieldName2 \\ fieldName3
但我怎麼能這個搜索修改值? F。前
json transform{
case JField(x,y) => JField(x, z)
}
如果使用lift-json,你得到你想要的東西:
scala> import net.liftweb.json._
scala> import net.liftweb.json.JsonDSL._
scala> val json =
("person" ->
("name" -> "Joe") ~
("age" -> 35) ~
("spouse" ->
("person" ->
("name" -> "Marilyn") ~
("age" -> 33)
)
)
)
scala> json transform {
case JField("name", JString(s)) => JField("NAME", JString(s.toUpperCase))
}
res8: net.liftweb.json.JsonAST.JValue = JObject(List(JField(person,JObject(List(
JField(NAME,JString(JOE)), JField(age,JInt(35)), JField(spouse,JObject(List(
JField(person,JObject(List(JField(NAME,JString(MARILYN)), JField(age,JInt(33)))))))))))))
以上代碼是從鏈接頁面複製。
如果您不使用lift-json,您可以查看kiama,如this answer中所示。
用於引用Kiama。那個項目很棒! – 2012-07-10 06:57:06
編輯:我試着:從查詢中獲取字段,然後爲每個Jfield調用方法轉換,我檢查當前字段是否來自查詢字段。但是這很醜陋 – user1511848 2012-07-09 12:41:19
你可以使用''extract''(參考lift-json文檔https://github.com/lift/lift/tree/master/framework/lift-base/lift-json/,section 「提取值」),以便將json AST轉換爲一個case類的列表,然後使用通常的收集方法(如filter和map)來完成轉換? – 2012-07-09 13:54:02