从外部应用程序返回的输入流看起来像这样:
JSONObj = {
"output":
[
{
"box":[0, 44, 43, 189],
"text":"~9 000 -"
}
]
}
我在用Java解析JSON时遇到问题
“ JSONOBJ”作为无效令牌不断返回。
有没有一种方法可以简单地从“ [”开始解析?
答案 0 :(得分:0)
我建议不要在解析JSON之前对其进行处理。如果要剪切部分,则表明您的目标数据结构(您打算获取的Java类)与您接收的数据不匹配。这两个应该同步。
答案 1 :(得分:0)
将其扔到任何体面的JSON解析器中将告诉您这是无效的JSON。
尤其是在第6行,您应该删除手动换行符,因为JSON仅允许使用行分隔符\n
使用显式的换行符:
{
"output": [
{
"box": [
0,
44,
43,
189
],
"text": "~9 000 -"
}
]
}
答案 2 :(得分:0)
最简单的方法可能是:
json = json.substring(json.indexOf('{'))
我实际上不同意Nicktar的声明,因为该外部程序甚至没有返回有效的JSON(坦率地说,我认为这是一个非常非常愚蠢的实现)。无需说“嘿,那是一个对象”,因为它实际上是隐式的。如果JSON以{
开头,则为对象,如果以[
开头,则为数组。