文字列のスカラ リスト List[String] を Json オブジェクトに変換したいと考えています。
リスト内の文字列ごとに、それを Json オブジェクトに追加したいと考えています。
そのため、次のようになります。
{
"names":[
{
"Bob",
"Andrea",
"Mike",
"Lisa"
}
]
}
文字列のリストから、このような json オブジェクトを作成するにはどうすればよいですか?
あなたの質問に直接答えるには、非常に単純でハックな方法です:
val start = """"{"names":[{"""
val end = """}]}"""
val json = mylist.mkString(start, ",", end)
ただし、ほぼ確実にやりたいことは、多くの JSON ライブラリから 1 つを選択することです。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 によって暗黙的に変換されます。JObject
これjson
で、必要な json データのメモリ内モデルが になります。
pretty
Printer
オブジェクトから来て、オブジェクトrender
から来JsonAST
ます。組み合わせると、String
次のようなデータの表現が作成されます
{
"names":["Bob","Andrea","Mike","Lisa"]
}
Lift のドキュメントを確認してください。lift の json サポートに関するその他の質問への回答が見つかる可能性があります。