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