发布日期:2018-03-26
java从URL读取json的最简单的方式+ 查看更多
java从URL读取json的最简单的方式
+ 查看更多
发布日期:2018-02-23 16:15
分类:JAVA
浏览次数:391
这可能是一个愚蠢的问题,但是java从URL读取json的最简单的方式是什么?
在Groovy中,这只是几行代码的问题。 我发现的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("http://127.0.0.1/19292868552"); System.out.println(json.toString()); System.out.println(json.get("id")); } }