因为我正在处理泛型,所以我不能使用特定的案例类。然后我创建了一个通用的util来对通用对象进行序列化和反序列化。json4s序列化和反序列化泛型
import org.json4s
import org.json4s.Formats._
import org.json4s.native.JsonMethods._
object JsonHelper {
def json2Object[O](input: String) : O = {
parse(json4s.string2JsonInput(input)).asInstanceOf[O]
}
def object2Json[O](input: O) : String = {
write(input).toString
}
}
编译器会引发错误:
No JSON serializer found for type O. Try to implement an implicit Writer or JsonFormat for this type. write(input).toString
这将会在运行时抛出,但为什么它在编译时抛出的真实?
事情如何在您的脑海中起作用?如果'O'可以是任何东西,那么json4s怎么知道在所有情况下要做什么?只要为O定义了Writer或者JsonFormat,你的'write(input)'就可以工作。在编译的时候,这个没有被发现 – mfirry
@mfirry那么jackson如何使用java对象呢? 它使用反射权吗?为什么它与Scala不同? –