我想将字符串的 Scala 列表 List[String] 转换为 Json 对象。
对于我列表中的每个字符串,我想将它添加到我的 Json 对象中。
所以它看起来像这样:
{
"names":[
{
"Bob",
"Andrea",
"Mike",
"Lisa"
}
]
}
如何从我的字符串列表中创建一个看起来像这样的 json 对象?
要直接回答您的问题,这是一种非常简单和hacky的方法:
val start = """"{"names":[{"""
val end = """}]}"""
val json = mylist.mkString(start, ",", end)
但是,您几乎可以肯定想做的是从众多 JSON 库中选择一个:play-json和lift- json都得到了一些好评。在最坏的情况下,您可以只为 Java 获取一个简单的 JSON 库并使用它。
由于我熟悉 lift-json,我将向您展示如何使用该库来完成它。
import net.liftweb.json.JsonDSL._
import net.liftweb.json.JsonAST._
import net.liftweb.json.Printer._
import net.liftweb.json.JObject
val json: JObject = "names" -> List("Bob", "Andrea", "Mike", "Lisa")
println(json)
println(pretty(render(json)))
该names -> List(...)
表达式由 JsonDSL 隐式转换,因为我指定我希望它产生 a JObject
,所以现在json
是您想要的 json 数据的内存模型。
pretty
来自Printer
对象,render
来自JsonAST
对象。结合起来,它们创建了String
您的数据的表示形式,看起来像
{
"names":["Bob","Andrea","Mike","Lisa"]
}
请务必查看lift 文档,您可能会在其中找到有关 lift 的 json 支持的任何其他问题的答案。