我是框架和scala语言的新手,我想要将我的数组列表转换为json,在java中我首先将值存储到列表中,然后将列表转换为json,如下所示public static Result getJson(){
List<Task> abc = Task.all();
return ok(toJson(abc));
}
通过这段代码,我实现了相同的目标,但是当我在 scala 中尝试相同的方法时,它不起作用:代码是 def jsonTask= Action {
var jsonValue:List[Task] = Task.all()
Ok(views.html.display(Json.toJson(jsonValue))) }
我遇到错误::
未找到类型 List[models.Task] 的 Json 反序列化器。尝试为此类型实现隐式写入或格式。
有人给了我同样的解决方案。
最佳答案
我找到了解决方案。
在模型类中定义隐式编写器。
implicit val implicitTaskWrites = new Writes[Task] {
def writes(taskobj: Task): JsValue = {
Json.obj(
"id" -> taskobj.id,
"label" -> taskobj.label
)
}
}
这会将每个任务(我的模型类)对象转换为 JsValue 对象。 然后
def parse(list :List[Task]) :String ={
var json=new JsArray()
for(task:Task <- list ){
json=json.append(Json.toJson( task ) )
}
json.toString()
}
也添加此代码。
然后调用parse(list),就可以得到json字符串。
关于java - 从数据库检索字符串到 json 时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18073821/