Scala 使用 lift-json 对象到 json 字符串
Scala object to json string using lift-json
我有一个像
这样的 scala class
class metrics{
private var _moduleId: String = ""
private var _blah1: String = ""
private var _metadata: Map[String, String] = Map()
def moduleId: String = _moduleId
def moduleId_(value: String): Unit = {
_moduleId = value
}
def blah1: String = _blah1
def blah1_(value: String): Unit = {
_blah1 = value
}
def metadata: Map[String, String] = _metadata
def metadata_(value: Map[String, String]): Unit = {
_metadata = value
}
}
我如何使用 lift-json 库将下面的指标对象转换为 json 字符串。
val coda = new metrics()
coda.blah1_("blah1")
coda.moduleId_("module1")
coda.metadata_(Map("p1"->"Alice","p2"->"Bob"))
当我这样尝试时 val json = Extraction.decompose(coda)
,我得到一个空的 json {}。任何关于如何从 scala pojo 转换为 json 的见解都会有所帮助。
decompose
的文档说:
Decompose a case class into JSON
你那里没有案例class。 Case classes 是 scala 中的 "pojo"。您不需要编写所有样板文件。
case class Metrics(moduleId: String = "", blah1: String = "", metadata: Map[String, String] = Map())
val coda = Metrics(
blah1 = "blah1",
moduleId = "module1",
metadata = Map("p1"->"Alice","p2"->"Bob"))
val json = Extraction.decompose(coda)
我有一个像
这样的 scala classclass metrics{
private var _moduleId: String = ""
private var _blah1: String = ""
private var _metadata: Map[String, String] = Map()
def moduleId: String = _moduleId
def moduleId_(value: String): Unit = {
_moduleId = value
}
def blah1: String = _blah1
def blah1_(value: String): Unit = {
_blah1 = value
}
def metadata: Map[String, String] = _metadata
def metadata_(value: Map[String, String]): Unit = {
_metadata = value
}
}
我如何使用 lift-json 库将下面的指标对象转换为 json 字符串。
val coda = new metrics()
coda.blah1_("blah1")
coda.moduleId_("module1")
coda.metadata_(Map("p1"->"Alice","p2"->"Bob"))
当我这样尝试时 val json = Extraction.decompose(coda)
,我得到一个空的 json {}。任何关于如何从 scala pojo 转换为 json 的见解都会有所帮助。
decompose
的文档说:
Decompose a case class into JSON
你那里没有案例class。 Case classes 是 scala 中的 "pojo"。您不需要编写所有样板文件。
case class Metrics(moduleId: String = "", blah1: String = "", metadata: Map[String, String] = Map())
val coda = Metrics(
blah1 = "blah1",
moduleId = "module1",
metadata = Map("p1"->"Alice","p2"->"Bob"))
val json = Extraction.decompose(coda)