[我正在尝试将scalaStament(用于将SQL语句发送到数据库的对象)转换为带有scala的Json。
到目前为止,我发现在scala中将对象转换为Json的最佳方法是使用net.liftweb库。但是当我尝试它时,我得到了一个空的json。这是代码
import java.sql.DriverManager
import net.liftweb.json._
import net.liftweb.json.Serialization.write
object Main {
def main (args: Array[String]): Unit = {
implicit val formats = DefaultFormats
val jdbcSqlConnStr = "sqlserverurl**"
val conn = DriverManager.getConnection(jdbcSqlConnStr)
val statement = conn.prepareStatement("exec select_all")
val piedPierJSON2= write(statement)
println(piedPierJSON2)
}
}
这是结果
{}
我使用了我创建的对象,并且转换成功。
case class Person(name: String, address: Address)
case class Address(city: String, state: String)
val p = Person("Alvin Alexander", Address("Talkeetna", "AK"))
val piedPierJSON3 = write(p)
println(piedPierJSON3)
这是结果
{"name":"Alvin Alexander","address":{"city":"Talkeetna","state":"AK"}}
我知道问题出在哪里,PrepareStament是一个接口,并且其子类型都不是可序列化的...我将尝试将其包装起来并放在另一个类中。