使用java处理Json API响应
我一直在试图找出如何处理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();
}
如果有人能帮我解析字符串或以其他方式处理响应,我将不胜感激
# 1 楼答案
您可以使用^{} 框架将响应解析为Java对象。添加依赖项后,它的工作方式如下:
假设您从API获得以下响应:
可以编写以下代码将其反序列化为对象:
如果json无效,它将失败并抛出
JsonParseException
或JsonMappingException
。您可以在代码中处理它并做出相应的响应Here's关于如何使用Jackson的分步教程
# 2 楼答案
这取决于您想用Json做什么。我假设您希望将转换为Java对象。 为此,您可以使用Gson或Jackson。 假设您有一个类似json的
您的java类
然后你可以用
创建java对象