【问题标题】:Reverse operation of extract (json4s)提取的反向操作(json4s)
【发布时间】:2018-09-13 17:01:07
【问题描述】:

json4s 允许用户使用extract 将 JsonAST 对象转换为案例类。

import org.json4s._
import org.json4s.jackson.JsonMethods._

implicit val formats = DefaultFormats

case class Item(name: String, price: Double)
val json = parse("""{"name": "phone", "price": 1000.0}""") // JObject(List((name,JString(phone)), (price,JDouble(1000.0))))
val item = json.extract[Item] // Item(phone,1000.0)

但是,要将案例类转换为 JsonAST 对象,我能想到的唯一方法是:

  1. 使用write序列化案例类
  2. 使用extract反序列化字符串

如下:

parse(write(item)) // JObject(List((name,JString(phone)), (price,JDouble(1000.0))))

有没有更好的转换方法?谢谢!

【问题讨论】:

标签: scala json4s


【解决方案1】:

Extraction.decompose 将案例类对象转换为 JsonAST。

Extraction.decompose(item) // JObject(List((name,JString(phone)), (price,JDouble(1000.0))))

【讨论】:

  • 请添加支持说明以解释为什么这回答了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 2015-11-29
相关资源
最近更新 更多