我有一个包含JSON数据的字符串,后跟其他类型的字符串,例如:
{
"a": 1
}
bcde
我需要使用Json4s(基于Scala的json解析器)将其解析为2部分:JSON AST和字符串“ bcde”的其余部分,解析器在遇到最后一个括号时应该能够“尽早停止” 。是否支持此功能?我应该怎么做才能调用它?
substring调用很容易达到相同的目的,如下所示:
import org.json4s._
import org.json4s.jackson.JsonMethods._
val data = """{"a": 1}bcde"""
// the last } is considered the end of the json data
val lastIndex = data.lastIndexOf("}")
val jsonData = data.substring(0, lastIndex + 1)
val nonJsonData = data.substring(lastIndex + 1)
val parsed = parse(jsonData)
// lastIndex: Int =7
// jsonData: String = {"a": 1}
// nonJsonData: String = bcde
// parsed: org.json4s.JValue = JObject(List((a,JInt(1))))