java讀取其他服務(wù)接口返回的json數(shù)據(jù)示例代碼
前言
現(xiàn)在開發(fā)大部分都是服務(wù)化或者微服務(wù),數(shù)據(jù)交換都是跨服務(wù)的,這里記錄java調(diào)取其他接口的方法,下面話不多說了,來一起看看詳細的介紹吧。
java代碼如下:
/**
*
*<p>類描述:接口讀取工具。</p>
*/
public class ReadUrlUtil {
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")));
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
String jsonText = sb.toString();
JSONObject json = JSONObject.fromObject(jsonText);
return json;
} finally {
is.close();
}
}
}
測試代碼如下:
public static void main(String[] args) throws IOException, JSONException {
/ 這里調(diào)用百度的ip定位api服務(wù) 詳見 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm
String ip = "113.57.244.100";
String url = "http://api.map.baidu.com/location/ip?ak=32f38c9491f2da9eb61106aaab1e9739&ip="+ip+"&coor=bd09ll";
JSONObject json = ReadUrlUtil.readJsonFromUrl(url);
System.out.println(json.toString());
System.out.println("經(jīng)度:"+((JSONObject) json.get("content")).getJSONObject("point").get("x"));
System.out.println("維度:"+((JSONObject) json.get("content")).getJSONObject("point").get("y"));
String city =(String) ((JSONObject) json.get("content")).getJSONObject("address_detail").get("city");
city = city.replace("市","");
System.out.println(city);
}
測試結(jié)果如下圖:

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
.NET Core使用SignalR實現(xiàn)實時通訊的示例代碼
SignalR是一個ASP.NETCore庫,用于在客戶端和服務(wù)器之間實現(xiàn)實時通訊,本文主要介紹了.NETCore中使用SignalR實現(xiàn)實時通訊,感興趣的可以了解一下2024-11-11
如何使用Spring?Boot設(shè)置上傳文件大小限制
上傳文件是互聯(lián)網(wǎng)中常應(yīng)用的場景之一,最典型的情況就是上傳頭像等,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?Boot設(shè)置上傳文件大小限制的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01
Jvisualvm監(jiān)控遠程SpringBoot項目的過程詳解
這篇文章主要介紹了Jvisualvm監(jiān)控遠程SpringBoot項目,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
Mybatis一級緩存和結(jié)合Spring Framework后失效的源碼探究
這篇文章主要介紹了Mybatis一級緩存和結(jié)合Spring Framework后失效的源碼探究,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Java中的 BigDecimal 和 String 的相互轉(zhuǎn)換問題
這篇文章主要介紹了Java中的 BigDecimal 和 String 的相互轉(zhuǎn)換問題,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
關(guān)于dubbo的RPC和RESTful性能及對比
這篇文章主要介紹了關(guān)于dubbo的RPC和RESTful性能及對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題
這篇文章主要介紹了完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02

