【发布时间】:2019-07-09 14:17:43
【问题描述】:
我正在编写一个需要解析客户端上传的 JSON 字符串的服务器。目前我正在使用 Play JSON lib。例如:
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 字符串时使用了多少个字符?
【问题讨论】:
-
如果您正确地摄取 JSON 流,这可能不是一件容易的事Scanning a HUGE JSON file for deserializable data in Scala