我想将scala的字符串列表List [String]转换为Json对象。
对于列表中的每个字符串,我想将它添加到我的Json对象中。
所以它看起来像这样:
{
"names":[
{
"Bob",
"Andrea",
"Mike",
"Lisa"
}
]
}
如何从我的字符串列表中创建一个这样的json对象?
答案 0 :(得分:10)
直接回答你的问题,这是一种非常简单和愚蠢的方式:
val start = """"{"names":[{"""
val end = """}]}"""
val json = mylist.mkString(start, ",", end)
然而,你几乎肯定想要做的就是选择其中一个JSON库:play-json得到一些好的评论,lift-json也是如此。最糟糕的是,您可以为Java抓取一个简单的JSON库并使用它。
答案 1 :(得分:4)
由于我熟悉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隐式转换,因为我指定我希望它导致JObject
,所以现在json
是json的内存中模型你想要的数据。
pretty
来自Printer
对象,render
来自JsonAST
对象。结合起来,他们会创建数据的String
表示,看起来像
{
"names":["Bob","Andrea","Mike","Lisa"]
}
请务必查看lift documentation,在那里您可能会找到有关电梯json支持的任何其他问题的答案。