java获取全国省份和城市
时间: 2023-07-26 16:04:39 浏览: 143
基于Java语言的省份城市地址获取功能设计源码
在Java中,获取全国省份和城市可以通过解析JSON数据来实现。以下是一个使用阿里巴巴的城市数据API获取全国省份和城市的例子:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
public class ProvinceCityExample {
public static void main(String[] args) {
String apiUrl = "http://cdn.cnbj1.fds.api.mi-img.com/mi-mall/5d6d9de8f27ad.json";
try {
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
JSONObject jsonObject = new JSONObject(response.toString());
JSONArray provincesArray = jsonObject.getJSONArray("provinces");
List<String> provinces = new ArrayList<>();
for (int i = 0; i < provincesArray.length(); i++) {
JSONObject provinceObj = provincesArray.getJSONObject(i);
String provinceName = provinceObj.getString("name");
JSONArray citiesArray = provinceObj.getJSONArray("cities");
List<String> cities = new ArrayList<>();
for (int j = 0; j < citiesArray.length(); j++) {
JSONObject cityObj = citiesArray.getJSONObject(j);
String cityName = cityObj.getString("name");
cities.add(cityName);
}
String province = provinceName + ":" + cities.toString();
provinces.add(province);
}
System.out.println(provinces.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们使用阿里巴巴的城市数据API获取JSON格式的城市数据。然后,我们解析JSON数据,提取每个省份和城市的名称,并将它们存储在一个List中。最后,我们将省份和城市的名称打印出来。请注意,这个例子仅提供了省份和城市名称的获取,您可以根据需要对其进行更改和扩展。
阅读全文