将 InputStream 转换为 JSONObject

2022-08-31 20:17:05

我正在使用以下代码将 InputStream 转换为 JSONObject。我的问题是,有没有简单的方法将 InputStream 转换为 JSONObject。无需执行 InputStream -> BufferedReader -> StringBuilder -> 循环 -> JSONObject.toString()。

    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());

答案 1

由于您已经在使用Google的库,因此您可以像这样解析json:Json-SimpleInputStream

InputStream inputStream = ... //Read from a file, or a HttpRequest, or whatever.
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject)jsonParser.parse(
      new InputStreamReader(inputStream, "UTF-8"));

答案 2

使用 JsonReader 来解析 InputStream。请参阅 API 中的示例:http://developer.android.com/reference/android/util/JsonReader.html