java - 从数据库检索字符串到 json 时遇到错误

标签 java json web-services scala playframework

我是框架和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/

相关文章:

java - Android 直方图均衡

php - 如何使用api获取从比特币到美元的价格

visual-studio-2008 - 如何确定为什么在VS2008中阻止将Web服务引用添加到我的项目中?

java - API版本控制有哪些类型?

java - 解析使用跟踪器的 Java 属性文件中的用户名

在继续之前要渲染 Java Swing JFrame

java - 格式化我的字符串

python - 使用 JSON 进行 POST 在 Postman 中有效,但在 Python 中无效

json - 在 Golang 中解析 JSON 时出错

Java Web 服务/JAXB - 抽象父类(super class)