따라서 제네릭 형식을 다루고 있으므로 특정 사례 클래스를 사용할 수 없습니다. 그런 다음 일반 객체를 직렬화 및 비 직렬화하는 일반 유틸리티를 만들었습니다.json4s 제네릭 형식을 serialize 및 deserialize
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'가 무엇이든 될 수 있다면, json4는 모든 경우에 무엇을해야하는지 알 것입니다. Writer 나 JsonFormat이 O에 정의되어있는 한 당신의'write (input) '일은 작동 할 것입니다. 컴파일 시간에 이것은 찾을 수 없습니다 – mfirry
@mfirry 그래서 jackson이 java 객체로 어떻게 작동 할 수 있습니까? 반사를 올바르게 사용합니까? 왜 스칼라와 다른가? –