5

文字列のスカラ リスト List[String] を Json オブジェクトに変換したいと考えています。

リスト内の文字列ごとに、それを Json オブジェクトに追加したいと考えています。

そのため、次のようになります。

{
 "names":[
  {
    "Bob",
    "Andrea",
    "Mike",
    "Lisa"
  }
 ]
}

文字列のリストから、このような json オブジェクトを作成するにはどうすればよいですか?

4

2 に答える 2

12

あなたの質問に直接答えるには、非常に単純でハックな方法です:

val start = """"{"names":[{"""
val end = """}]}"""
val json = mylist.mkString(start, ",", end)

ただし、ほぼ確実にやりたいことは、多くの JSON ライブラリから 1 つを選択することです。play-jsonは、 lift-jsonと同様に、いくつかの良いコメントを受け取ります。最悪の場合、Java 用の単純な JSON ライブラリを取得して使用することもできます。

于 2013-03-19T11:10:37.857 に答える
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 データのメモリ内モデルが になります。

prettyPrinterオブジェクトから来て、オブジェクトrenderから来JsonASTます。組み合わせると、String次のようなデータの表現が作成されます

{
  "names":["Bob","Andrea","Mike","Lisa"]
}

Lift のドキュメントを確認してください。lift の json サポートに関するその他の質問への回答が見つかる可能性があります。

于 2013-03-19T11:45:17.293 に答える