JSON文件太短,无法创建JsonReader

时间:2016-08-11 13:55:29

标签: java json

我正在使用javax.json库并尝试在文本文件中读取JsonObject。我使用此方法读取文件并将其作为JsonObject返回:

public static JsonObject readFile(String path)
{
    InputStream is = new FileInputStream(path);
    JsonReader rdr = Json.createReader(is);
    JsonObject obj = rdr.readObject();
    rdr.close();
    return obj;
}

但是,当我尝试读取文件时,我在JsonReader rdr = Json.createReader(is)行收到错误,说明它

  

"无法自动检测编码,没有足够的字符"。

我可以做些什么来修复此错误而不更改文件中的内容?

文件是这样的:

{"6111":1,"6121":1,"6131":1,"6141":1,"6151":1,"6162":1,"6312":1,"6323":1,"6331":1,"6343":1,"totalGames":1}

1 个答案:

答案 0 :(得分:4)

如上所述,方法createReader()需要更多字符来检测文件字符集

虽然您的文件太小而无法允许,但您可以将字符集传递给方法

试试这个:

public static JsonObject readFile(String path)
{
    InputStream is = new FileInputStream(path);
    JsonReader rdr = Json.createParserFactory(null).createReader(is, java.nio.charset.StandardCharsets.UTF_8);
    JsonObject obj = rdr.readObject();
    rdr.close();
    return obj;
}

如果你使用不同的字符集而不是“UTF8”改变使用的字符