【发布时间】:2018-11-27 19:23:51
【问题描述】:
我是第一次使用 Gson 库。我正在发出 HTTP 请求并拉取响应(JSON 响应)并且需要拉取特定结果。
StringBuilder response;
try (BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream()))) {
String line;
response = new StringBuilder();
while((line = in.readLine()) != null) {
response.append(line);
}
}
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
System.out.println(gson.toJson(response));
响应如下所示,我只需拉取cardBackId:
[{\"cardBackId\":\"0\",\"name\":\"Classic\",\"description\":\"The only card back you\u0027ll ever need.\",\"source\":\"startup\",\"sourceDescription\":\"Default\",\"enabled\":true,\"img\":\"http://wow.zamimg.com/images/hearthstone/backs/original/Card_Back_Default.png\",\"imgAnimated\":\"http://wow.zamimg.com/images/hearthstone/backs/animated/Card_Back_Default.gif\",\"sortCategory\":\"1\",\"sortOrder\":\"1\",\"locale\":\"enUS\"
【问题讨论】:
-
您是否正在尝试将 JSON 字符串转换为对象?
-
gson.toJson(response) 正在拉动完整的响应。我只想拉“cardBackId”。
-
StringBuilder resp; try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { String line; resp = new StringBuilder(); while((line = in.readLine()) != null) { resp.append(line); } }
-
toJson()将对象转换为 JSON 字符串。fromJson()将 JSON 字符串转换为对象。