【问题标题】:How to parse/decode JSON using Java from bufferReader output?如何使用来自 bufferReader 输出的 Java 解析/解码 JSON?
【发布时间】:2017-03-20 05:13:30
【问题描述】:

我得到一个 JSON 输出。现在需要解析 JSON 字符串。

我的部分代码:

int responseCode = con.getResponseCode();
    System.out.println("\nSending 'POST' request to URL : " + url);
    System.out.println("Post parameters : " + query_en);
    System.out.println("Response Code : " + responseCode);

    BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    //print result
    System.out.println(response.toString());

如何使用 Java 解析输出?

【问题讨论】:

标签: java json parsing decode


【解决方案1】:

在 java 中有很多用于解析 JSON 的第三方库。例如杰克逊:

private void test(BufferedReader reader) {
    ObjectMapper mapper = new ObjectMapper();
    try {
        Map<String, Object> map = mapper.readValue(reader, new TypeReference<Map<String, String>>() {
        });
        System.out.println(map);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

格森:

    private void test2(BufferedReader r) {
    Gson gson = new Gson();
    Type type = new TypeToken<Map<String, String>>(){}.getType();
    Map<String, String> myMap = gson.fromJson(r, type);
    System.out.println(myMap);
}

【讨论】:

    【解决方案2】:

    您可以为此使用https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.0

    JsonObject jsonData = new JsonParser().parse(response.toString()).getAsJsonObject();
    

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 2016-10-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      相关资源
      最近更新 更多