当前位置: 首页 > 知识库问答 >
问题:

我如何使用Google的Gson从JSON响应中获得某个值?

吴展
2023-03-14

下面是我到目前为止的代码,我将Json放在一个字符串中:

import java.io.*;
import java.net.*;
import com.google.gson.*;

public class Subreddits {

public static void main(String[] args) {
    URL u = null;
    try {
        u = new URL("http://www.reddit.com/.json");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    URLConnection yc = null;
    try {
        yc = u.openConnection();
    } catch (IOException e) {
        e.printStackTrace();
    }
    BufferedReader in = null;
    try {
        in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
    } catch (IOException e) {
        e.printStackTrace();
    }
    String inputLine = null;
    StringBuilder sb = new StringBuilder();
    try {
        while ((inputLine = in.readLine()) != null){
            sb.append(inputLine);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    inputLine = sb.toString();//String of json
    System.out.println(inputLine);
    //I want to get [data][children][data][subreddit]
}

}

共有1个答案

东方和煦
2023-03-14

您可以创建这个类结构来解析响应(用伪代码):

class Response
  Data data

class Data
  List<Child> children

class Child
  OtherData data

class OtherData
  String subreddit

然后用以下语句解析JSON字符串:

Gson gson = new Gson();
Response response = gson.fromJson(inputLine, Response.class);

为了获得所需的具体数据,只需:

String subreddit = response.getData().getChildren().getOtherData().getSubreddit();
 类似资料:
  • 我的JSON: 上面的代码是什么我有treid,所以可以任何一个请帮助我获得整个响应不仅是父类别。

  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下

  • 我试图从Web读取JSON数据,但该代码返回空结果。我不确定我做错了什么。

  • 问题内容: 我有一个特定的Web服务,期望将JSON作为发布内容,并将向后吐出XML。我正在对所有网络通话使用Retrofit。这是我使用XML转换器设置Retrofit适配器的方式: 如您所见,我没有使用Gson转换器。我如何设法发布任何JSON?谢谢! 问题答案: 创建自定义。这将使用不同的转换器进行序列化和反序列化。 用法:

  • 我用Rocket编写了一个简单的web服务,每当数据作为200响应出现时,它都包含一个字符串向量。当出现错误时,我希望有自定义错误。我想对这些反应施加的结构应该如下所示https://stackoverflow.com/a/23708903/4402306,具体而言: 对于成功的响应: 对于错误: 对于错误,我混淆了在火箭中使用与实现我自己的错误结构,如枚举(使用火箭派生): 那么我应该用什么来实

  • 问题内容: 在一个Node.js项目中,我试图从S3取回数据。 当我使用时,一切正常: 我的参数是: 如果将URL输出带到控制台并将其粘贴到Web浏览器中,它将下载所需的文件。 但是,如果我尝试使用,则会出现各种奇怪的行为。我相信我只是使用不正确。这是我尝试过的: 输出: 因此看来这工作正常。但是,当我在s 之一上设置断点时,我的IDE(NetBeans)会引发错误并拒绝显示数据值。尽管这可能只是