java使用getinputstream_java解析数据接口获取json对象
生活随笔
收集整理的這篇文章主要介紹了
java使用getinputstream_java解析数据接口获取json对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近小編在做項目的時候,需要解析一個url以獲取其數據,開始我為簡便,使用了Postman這個工具來解析,也獲取了json對象。
但后也發現,它沒法直接連接數據庫,也就是說這些數據不能直接存入數據庫,經過查詢,使用node.js作為中介可以解決這個問題,后又發現,連接后一次只能向數據庫post一個對象,后就直接使用java解析吧!
方法很多,在這使用常用HTTP方法的POST和GET為例吧,區別什么的自己百度吧!
首先就是導入所需的架包,我是用的是gson.jar,在后臺回復json就能獲取!
1、先看get方法public static JsonObject getPath(String requestUrl){ String res=""; JsonObject object = null; StringBuffer buffer = new StringBuffer(); try{ URL url = new URL(requestUrl);//獲取url HttpURLConnection urlCon= (HttpURLConnection)url.openConnection();//得到鏈接 if(200==urlCon.getResponseCode()){//如果資源存在 InputStream is = urlCon.getInputStream();//得到網絡的輸入流 InputStreamReader isr = new InputStreamReader(is,"utf-8");//編碼格式 BufferedReader br = new BufferedReader(isr);//存入Buffer緩沖區 String str = null; while((str = br.readLine())!=null){ buffer.append(str); } br.close(); isr.close(); is.close(); res = buffer.toString(); JsonParser parse =new JsonParser(); object = (JsonObject) parse.parse(res); } }catch(IOException e){ e.printStackTrace(); } return object;????}2、POST方法public static JsonObject postJson(String path,String post){ URL url = null; try { url = new URL(path); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST");// 提交模式?????????????conn.setConnectTimeout(10000);//連接超時?單位毫秒?????????????conn.setReadTimeout(2000);//讀取超時?單位毫秒 // 發送POST請求必須設置如下兩行 httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); // 獲取URLConnection對象對應的輸出流 PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream()); // 發送請求參數 printWriter.write(post);//post的參數 xx=xx&yy=yy // flush輸出流的緩沖 printWriter.flush(); //開始獲取數據 BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream()); ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len; byte[] arr = new byte[1024]; while((len=bis.read(arr))!= -1){ bos.write(arr,0,len); bos.flush(); } bos.close(); JsonParser parse = new JsonParser(); return (JsonObject)parse.parse(bos.toString("utf-8")); } catch (Exception e) { e.printStackTrace(); } return null; }3、在主方法中的測試 public static void main(String args [] ) { JsonObject res = null;????????res?=?getPath("https://jiaotong.baidu.com/trafficindex/city/roadrank?cityCode=307&roadtype=0"); //res = postJson("https://jiaotong.baidu.com/trafficindex/city/roadrank?cityCode=307&roadtype=0","ip=63.223.108.42");???????/System.out.println(res); JsonObject jObject = (JsonObject) res.get("data"); //System.out.println(res.get("data")); JsonArray array = jObject.get("list").getAsJsonArray(); for (int i = 0; i < array.size(); i++) { JsonObject sObject = array.get(i).getAsJsonObject(); System.out.println("id:"+ sObject.get("id").getAsString()); } }4、我用于項目中的結果展示
有問題大家一起探討,一起學習,一起進步!
?歡迎關注“Java引導者”,我們分享最有價值的Java干貨文章,助力您成為有思想的Java開發工程師!
? ? ? ? ? ? ? ?
總結
以上是生活随笔為你收集整理的java使用getinputstream_java解析数据接口获取json对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql查看隔离模式_InnoDB 隔
- 下一篇: java怎么导入文件_怎么将文件导入ja