java - 使用 java 处理 Json API 响应

标签 java json

我一直在尝试弄清楚如何处理 GET 请求的 json 响应。这是我的请求代码:

String urlString = URL I want to request;

    URL url = new URL(urlString);
    URLConnection conn = url.openConnection();
    InputStream is = conn.getInputStream();
    String response = getStringFromInputStream(is);

我的问题是现在该怎么办。我一直在玩 gson,但我不知道如何解析所需信息的响应。

我还在网上找到了这个方法,可以将响应转换为字符串:

 private static String getStringFromInputStream(InputStream is) {

    BufferedReader br = null;
    StringBuilder sb = new StringBuilder();

    String line;
    try {

        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            sb.append(line);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    return sb.toString();

}

如果有人可以帮助我解析字符串或以其他方式处理响应,我将非常感激。

最佳答案

您可以使用Jackson框架将响应解析为 Java 对象。添加依赖项后,它将如何工作:

假设您从 API 收到以下响应:

{
    "id": 1,
    "name": "foo"
}

您可以编写以下代码将其反序列化为对象:

public class Response {
    private int id;
    private String name;
    //Getters and Setters
}

//code to convert
String response = sb.toString();
ObjectMapper mapper = new ObjectMapper();
Response responseObject = mapper.readValue(response, Response.class);

如果 json 无效,则会失败并抛出 JsonParseExceptionJsonMappingException。您可以在代码中处理它并做出相应的响应。

Here's关于如何使用 Jackson 的分步教程。

关于java - 使用 java 处理 Json API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352625/

相关文章:

java - Netbeans - 需要编译徽章

java - 在评估 spring 集成表达式时获取类转换表达式

javascript - 将 json 对象从变量解析为类,其中 key = class

sql-server - 将 T-SQL json 列读入 varchar 变量

c++ - 使用 boost 属性树读取 int 数组

javascript - 使用 JQUERY 拆分 JSON 数据

java - 缩短android中的进度条代码

java - 使用hibernate向数据库插入数据

json - 查询嵌套 JSON 的未知重复项

java - Maven是否比用于部署EAR项目的 Ant 构建工具更好?