我一直有尝试反序列化JSON数组到Scala的对象反序列化JSON阵列分成Scala的对象
[{"name":"Cool","city":"College Park","address":"806","id":1},{"name":"Mars ","city":"Durham","address":"12","id":2},{"name":"Something","city":"Raleigh
","address":"","id":3},{"name":"test","city":"","address":"","id":5}]
我试图GSON,jerkson(杰克逊阶包装器),sjson,flexjson重大问题。他们都没有工作。我在这里有一份客户名单。列表[客户]。
这是我所得到的最接近:
val array = new JsonParser().parse(customers).getAsJsonArray()
这给了我4个阵列。它显然没有给我一个客户对象。我试过Jerkson。
val array = parse[List[Customer]](customers)
但我明白了。
GenericSignatureFormatError occured : null
我只是想在Java中找到一个简单的方法。
这是我的Scala类。
case class Customer(
id : Pk[ Int ],
name : String,
address : Option[ String ],
city : Option[ String ],
state : Option[ String ],
user_id : Int)
object Customer extends Magic[ Customer ](Option("Customer")) {
def apply(name : String, address : String, city : String, state : String, user_id : Int) = {
new Customer(NotAssigned, name, Some(address), Some(city), Some(state), user_id)
}
def delete(id : Int) = {
SQL("DELETE from Customer where id = {id}").onParams(id).executeUpdate()
}
}
感谢您的任何帮助。
这也是一个很好的答案。尽管这可能会对大对象无法维护。 –
你是对的,但它可以很好地控制我们想要的任何类型。 –
同时,在栅栏的Groovy一边,“def foo = new Foo(bar:1,baz:'hey')为JSON”,并且您有对象的JSON表示。真的,Scala真的需要这种简洁的Scala对象来进行JSON转换。无法获取任意复杂的对象图并轻松地序列化为JSON使得Scala REST成为PITA。也许lift-json或Jerkson(维护者显然是awol,顺便说一句)可以做到这一点,但尾巴摇摆不顾;如果case类在1行中定义,为什么将它转换为/从JSON需要20行加号?然后你有30多个领域类,有趣... – virtualeyes