Raf*_*SCS 5 arrays json scala playframework
我有一个返回 Foo 类型的 JsArray 的方法。
为了处理响应,我正在执行以下操作:
val foos : List[Foo] = Json.toJson(result).as[List[Foo]]
Run Code Online (Sandbox Code Playgroud)
在调试时,我可以看到结果如下:
"[]"
Run Code Online (Sandbox Code Playgroud)
它是由代码生成的:
Ok(Json.toJson(foos))
Run Code Online (Sandbox Code Playgroud)
其中foos是一个列表[Foo]
但我收到错误:
[JsResultException: JsResultException(errors:List((,List(ValidationError(error.expected.jsarray,WrappedArray())))))]
我尝试了很多方法,但无法解决这个问题。
我做错了什么?
您很可能正在寻找Json.parse,而不是Json.toJson。
import play.api.libs.json.Json
scala> Json.toJson("[]")
res0: play.api.libs.json.JsValue = "[]"
scala> Json.parse("[]")
res1: play.api.libs.json.JsValue = []
Run Code Online (Sandbox Code Playgroud)
尝试转换res0为 aList[Foo]不起作用,因为您正在尝试转换字符串"[]"而不是没有引号的相同字符串,[].