【问题标题】:InputStream to JSONElement exceptionInputStream 到 JSONElement 异常
【发布时间】:2022-07-12 01:29:32
【问题描述】:

我正在尝试使用以下代码将 InputStream 转换为 JSON 元素

public jsonElement  parsejsonContentFromStream (Inputstream in){
Charset inputCharset = StandardCharsets.UTF-8;
InputStreamReader isr = new InputStreamReader(in, inputCharset);
BufferedReader bufferedReader = new  BufferedReader (isr);
JsonParser parser = new JsonParser();
return parser.parse(bufferedReader);
}

例外

Not a JSON object : “\u001f?\b\u000\u000\u0004\u0003uT”

然后我尝试了下面的代码

public JsonElement parseJsonContentFromStream(InputStream in) {
InputStreamReader ir = new InputStreamReader(in);
logger.info("Encode ="+ ir.getEncoding());
InputStreamReader isr = new InputStream Reader(in, StandardCharsets.UTF_8);
JsonReader jr = new JsonReader(isr);
JsonElement je=JsonParser.parseReader(jr).getAsJonObject();
return je;
}

仍然看到相同的错误消息。

Info:Encode = Cp1252
Java.lang.illegalStateException:Not a JSON object : “\u001f?\b\u000\u000\u0004\u0003uT”

请忽略任何语法错误。

【问题讨论】:

    标签: java spring spring-boot rest


    【解决方案1】:
    InputStream inputStreamObject = PositionKeeperRequestTest.class.getResourceAsStream(jsonFileName);
    BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputStreamObject, "UTF-8"));
    StringBuilder responseStrBuilder = new StringBuilder();
    
    String inputStr;
    while ((inputStr = streamReader.readLine()) != null)
        responseStrBuilder.append(inputStr);
    
    JSONObject jsonObject = new JSONObject(responseStrBuilder.toString());
    

    试试这个。

    【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2016-12-09
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多