我在进行一些基本的JSON解析时遇到问题

时间:2020-01-21 15:10:18

标签: java json jsonparser

从外部应用程序返回的输入流看起来像这样:

JSONObj = {    
           "output":
             [
               {
                 "box":[0, 44, 43, 189],
                 "text":"~9 000 -"
               }
             ]
          }

我在用Java解析JSON时遇到问题

“ JSONOBJ”作为无效令牌不断返回。

有没有一种方法可以简单地从“ [”开始解析?

3 个答案:

答案 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以{开头,则为对象,如果以[开头,则为数组。