我正在学习scala。我正在尝试找到一种简单的方法将JSON String转换为Scala案例类实例。 Java有很棒的库,名为Google Gson。它可以将java bean转换为json并返回而无需一些特殊的编码,基本上你可以在一行代码中完成它。
public class Example{
private String firstField
private Integer secondIntField
//constructor
//getters/setters here
}
//Bean instance to Json string
String exampleAsJson = new Gson().toJson(new Example("hehe", 42))
//String to Bean instance
Example exampleFromJson = new Gson().fromJson(exampleAsJson, Example.class)
我正在阅读https://www.playframework.com/documentation/2.5.x/ScalaJson并且无法理解:scala为何如此复杂?为什么要编写读者/编写器来序列化/反序列化简单的案例类实例?是否有简单的方法来转换案例类实例 - > json - >使用play json api的case类实例?
答案 0 :(得分:3)
假设你有
case class Foo(a: String, b: String)
您可以通过
轻松地在Play中为此写formatterimplicit val fooFormat = Json.format[Foo]
这将允许您序列化和反序列化为JSON。
val foo = Foo("1","2")
val js = Json.toJson(foo)(fooFormat) // Only include the specific format if it's not in scope.
val fooBack = js.as[Foo] // Now you have foo back!
答案 1 :(得分:1)
查看uPickle
这是一个小例子:
case class Example(firstField: String, secondIntField: Int)
val ex = Example("Hello", 3)
write(ex) // { "firstField": "Hello", "secondIntField" : 3 }