当前位置: 首页 > 面试题库 >

从Java中的URL读取json的最简单方法

江鹏飞
2023-03-14
问题内容

这可能是一个愚蠢的问题,但什么是阅读和分析的最简单方法JSON从URL中的Java?

在Groovy中,只需几行代码即可。我发现Java示例太长了(并且具有巨大的异常处理块)。


问题答案:

使用Maven工件,org.json:json我得到了以下代码,我认为这很短。尽可能短,但仍然可用。

package so4308554;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;

import org.json.JSONException;
import org.json.JSONObject;

public class JsonReader {

  private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
      sb.append((char) cp);
    }
    return sb.toString();
  }

  public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
    InputStream is = new URL(url).openStream();
    try {
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
      String jsonText = readAll(rd);
      JSONObject json = new JSONObject(jsonText);
      return json;
    } finally {
      is.close();
    }
  }

  public static void main(String[] args) throws IOException, JSONException {
    JSONObject json = readJsonFromUrl("https://graph.facebook.com/19292868552");
    System.out.println(json.toString());
    System.out.println(json.get("id"));
  }
}


 类似资料:
  • 问题内容: 我正在尝试用Java读取URL,只要URL正在浏览器中加载,它就可以工作。 但是,如果只是在浏览器中停止运行而在尝试在浏览器中打开该页面时未加载该页面,则Java应用程序会挂起,如果有足够的时间,它可能会永远等待。如果加载时间超过20秒而我停止了应用程序,如何设置超时时间? 我正在使用网址 这是代码的相关部分: 问题答案: 我不知道您如何使用URL类。如果发布摘要会更好。但是这是一种对

  • 问题内容: 我需要通过Qt解析JSON对象。最简单/最快的方法是什么? 问题答案: 试试QJson。 QJson是积极开发的(如果没有记错的话,将由KDE使用)。最好的办法是直接签出源代码并自己构建。没有对QJson的依赖(Qt和CMake除外)。使用起来也很简单,请看一些用法示例: http://qjson.sourceforge.net/usage/

  • 我正在为web服务编写一个Java客户端,需要将响应JSON对象解析为

  • 问题内容: 在Java中获取字符串的最后一个单词的最简单方法是什么?您可以假设没有标点符号(仅字母字符和空格)。 问题答案:

  • 问题内容: 我有一个很大的文件4GB,当我尝试读取它时,我的计算机挂起了。因此,我想逐个读取它,并且在处理完每个块之后,将已处理的块存储到另一个文件中并读取下一个块。 这些零件有什么方法吗? 我很想有一个简单的方法。 问题答案: 要编写一个简单函数,只需使用: 另一个选择是使用和辅助功能: 如果文件是基于行的,则文件对象已经是行的惰性生成器:

  • 问题内容: 当前,我们的Java应用程序使用制表符分隔的* .cfg文件中包含的值。我们需要更改此应用程序,以使其现在使用XML文件。 为了从此文件中读取值,使用的最佳/最简单的库是什么? 问题答案: 当然,根据您的需要有很多好的解决方案。如果只是配置,则应查看Jakarta commons- configuration 和commons- digester 。 您总是可以使用获取文档的标准JDK