使用Play JSON库反序列化多个JSON字符串

时间:2019-02-15 12:22:07

标签: json scala web playback

我正在编写一个服务器,该服务器需要解析客户端上传的JSON字符串。目前,我正在使用Play JSON库。例如:

import play.api.libs.json._

def parseJSON(jsonString: String) = {
    val jsv = Json.parse(jsonString)
    jsv
}

考虑到客户上传了一个{"key1": 1}的JOSN字符串。服务器收到整个字符串后,只需简单地调用parseJSON方法,即可完成所有操作。

但是,如果客户端上载了两个JSON字符串{"key2": 2}{"key3": 3},并且由于网络故障,这两个JSON字符串会同时到达服务器。服务器将获得一个长字符串{"key2": 2}{"key3": 3}(在解析之前,服务器不知道它包含两个JSON字符串)。如果我调用parseJSON方法并传递整个字符串,则仅返回第一个JSON值{"key2": 2}。第二个{"key3": 3}将被忽略。

那么,如何解析第二个JSON字符串?有没有一种方法可以知道在解析第一个JSON字符串时使用了多少个字符?

1 个答案:

答案 0 :(得分:0)

val jsonString2 = """{
    "key1": 1,
    "key2": 2
    }
    {
    "key3": 3,
 """

我认为这不是有效的JSON值,请尽可能使您的问题更清晰,以便我们提供帮助:)