javax.json.JsonException:创建jsonArray

时间:2015-06-17 05:16:33

标签: java json parsing

我正在尝试使用JSON文件进行一些解析,只需从JSON获取密钥和值并将其传递到jsonArray,然后从数组创建hashmap。

我的代码适用于我遇到的大多数JSON文件,但不适用于一个文件(其巨大且有点保密)。我得到的错误是

  

线程中的异常“AWT-EventQueue-0”javax.json.JsonException:Unexpected Char = 155
  在org.glassfish.json.JsonTokenizer.readString(JsonTokenizer.java:168)
  在org.glassfish.json.JsonTokenizer.nextToken(JsonTokenizer.java:302)
  在org.glassfish.json.JsonParserImpl $ StateIterator.nextToken(JsonParserImpl.java:158)
  在org.glassfish.json.JsonParserImpl $ StateIterator.next(JsonParserImpl.java:183)
  在org.glassfish.json.JsonParserImpl.next(JsonParserImpl.java:151)
  在org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:184)
  在org.glassfish.json.JsonReaderImpl.readArray(JsonReaderImpl.java:152)
  在org.glassfish.json.JsonReaderImpl.readArray(JsonReaderImpl.java:127)
  在parserUI.js2Properties(parserUI.java:173)

我的第173行是

JsonArray array = jsonReader.readArray();

你知道造成这种情况的原因是什么吗? json的格式通常是这个

[
    {
        "key":"aaaa",
        "value":"bbbbb",
        "description":""
    },
    {
        "key":"cccccc",
        "value":"dddddd",
        "description":""
    },
]

我发现哪条线导致了这个问题 它的这个 “值”: “查看活动” 但如果然后创建一个相同的行(如下所示)来替换它,那么它的工作原理 “值”: “查看活动”,

它们是相同的但是一个有效,一个没有 ......谁能解释一下呢?

1 个答案:

答案 0 :(得分:0)

输入中可能存在特殊字符或隐藏字符或不可打印的unicode字符。尝试使用正则表达式删除这些类型的字符,然后尝试。