我正在尝试执行以下操作:
Yii::$app->session->get('session');
我得到以下输出:
`import com.google.gson.Gson
object someObject extends App{
case class entries(a:Seq[String], b:String){
def toJson() = new Gson().toJson(this)
}
val one : Seq[String] = List("m","n")
val two : String = "ok"
val ans = entries(a = one, b = two)
println(ans.toJson)
}`
我能知道为什么我无法将seq转换为json吗? 我尝试了其他库,包括spray.json和json4s但没有帮助。为此尝试了很多。
感谢任何帮助。其他类似的答案没有帮助。
答案 0 :(得分:0)
由于Gson库是一个Java库,我会尝试使用Java集合而不是Scala集合。使用java.util.List
代替scala.collections.Seq
和java.util.ArrayList
代替scala List,您应该获得正确的输出:
import com.google.gson.Gson
import scala.collection.JavaConversions._
import java.util.ArrayList
import java.util.List
object someObject extends App {
case class entries(a: List[String], b: String) {
def toJson() = new Gson().toJson(this)
}
val one: List[String] = new ArrayList[String]
one.add("m")
one.add("n")
val two: String = "ok"
val ans = entries(a = one, b = two)
println(ans.toJson)
}
现在输出是:
{"":[" M"" N&#34]," B":" OK" }
答案 1 :(得分:0)
你可以尝试
case class Entry(a:Array[String], b:String)
val e = Entry(Array("a", "b"), "c")
val gson = new Gson
println(gson.toJson(e))
gson可以解析数组类型 输出将是: { “一”:[ “一”, “B”], “B”: “C”}
答案 2 :(得分:-1)
尝试jsoniter-scala,它支持所有 Scala集合,它也是Scala的JSON最有效的序列化程序。这里有results of benchmarks比较解析&使用JDK 8对这个库与Jackson,Circe和Play-JSON库进行序列化性能。
将库添加到依赖项列表
libraryDependencies ++= Seq(
"com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-core" % "0.29.2" % Compile,
"com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-macros" % "0.29.2" % Provided // required only in compile-time
)
为您的案例类,集合等生成编解码器
import com.github.plokhotnyuk.jsoniter_scala.macros._
import com.github.plokhotnyuk.jsoniter_scala.core._
case class entries(a: Seq[String], b: String)
implicit val codec: JsonValueCodec[entries] = JsonCodecMaker.make[entries](CodecMakerConfig())
现在您可以将它用于序列化
writeToArray(entries(a = Seq("m", "n"), b = "ok"))