首页 > 解决方案 > 从 API 获取数据到字符串

问题描述

我是主题 API 的新手,我有一个大学项目。我设法从 Api 中获取信息,但现在我想将确切的信息获取到 String 以便稍后上传到数据库。这是我的代码:

public class corona {


public static void main(String[] args) {
    // TODO Auto-generated method stub
      System.out
        .println(jsonGetRequest("https://api.apify.com/v2/datasets/dcm4uXhiGIjVdJAzS/items?format=json&clean=1"));


  }

  private static String streamToString(InputStream inputStream) {
    String text = new Scanner(inputStream, "UTF-8").useDelimiter("\\Z").next();
    return text;
  }

  public static String jsonGetRequest(String urlQueryString) {
    String json = null;
    try {
      URL url = new URL(urlQueryString);
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      connection.setDoOutput(true);
      connection.setInstanceFollowRedirects(false);
      connection.setRequestMethod("GET");
      connection.setRequestProperty("Content-Type", "application/json");
      connection.setRequestProperty("charset", "utf-8");
      connection.connect();
      InputStream inStream = connection.getInputStream();
      json = streamToString(inStream); // input stream to string
    } catch (IOException ex) {
      ex.printStackTrace();
    }
    return json;
  }
}

所以输出现在看起来像这样:输出

例如,我怎样才能将数据从字段 76 中取出?

标签: javajsonapi

解决方案


最好的方法是创建类似于您获得的 json 响应的模型类,并使用任何库将 json 响应转换为模型。例如。使用杰克逊

ObjectMapper mapper = new ObjectMapper();
SomeModel model = mapper.readValue("YOUR JSON STRING", SomeModel.class);

您可以查看jackson- deserialization 以获取更多示例。


推荐阅读