(3).关键词搜索行政区划
package com.jsxs.TentcentMap.AdministrativeDivision; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsxs.TencentMapUtils.TencentMapUtils; /** * @Author Jsxs * @Date 2023/4/6 21:22 * @PackageName:com.jsxs.TentcentMap.AdministrativeDivision * @ClassName: keywordsAdministrativeDivision * @Description: TODO 关键词行政区划 * @Version 1.0 */ public class keywordsAdministrativeDivision { public static JSONArray getKeywordsAdministrativeDivision(String keywords,String key){ String keyURL="https://apis.map.qq.com/ws/district/v1/search?&keyword="+keywords+"&key="+key; String s = TencentMapUtils.getTencentMap(keyURL).toString(); JSONObject jsonObject = JSONObject.parseObject(s); JSONArray result = (JSONArray)jsonObject.get("result"); return result; } public static void main(String[] args) { JSONArray array = getKeywordsAdministrativeDivision("周口", "xxxx"); JSONArray jsonArray = array.getJSONArray(0); for (int i = 0; i < jsonArray.size(); i++) { System.out.println("邮政编号:"+jsonArray.getJSONObject(i).get("id")+"->"+jsonArray.getJSONObject(i).get("fullname")+" ->详细地址:"+jsonArray.getJSONObject(i).get("address")); } } }
(二)、JSON
概述
阿里巴巴提供的一个json快速转换工具类,实现了Map接口,通过Key Value形式存储数据,初始化大小为16,有参构造方法需要传入一个Map。
项目中实际用途:
用于Json转具体的Object实体类,或者String快速转JSON格式,都可以用或者有的数据属性变化较多,暂时不想定义一个POJO接参,就可以用JSONObject先接着。
1.导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.26</version> </dependency>
2.JSON的常用转换
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.List; import java.util.Map; /** * @Author Jsxs * @Date 2023/4/5 5:59 * @PackageName:PACKAGE_NAME * @ClassName: testJSON * @Description: TODO * @Version 1.0 */ public class testJSON { public static void main(String[] args) { Student student = new Student("李明",21); // 1. Java对象转化为JSON字符串 String s = JSONObject.toJSONString(student); // 第一个参数是: Java对象 System.out.println("1.对象转换为JSON字符串-> "+s); // 2. Java对象转换为Object对象 Object o = JSONObject.toJSON(student); // 第一个参数是: Java对象 System.out.println("2.Java对象转换为Object对象-> "+o); // 3. (JSON)字符串转换为JSON对象 ⭐ JSONObject jsonObject = JSONObject.parseObject(s); // 第一个参数是: JSON字符串 System.out.println("3.JSON字符串转换为JSON对象-> "+jsonObject); // 4. JSON字符串转换为Object对象 Object parse = JSONObject.parse(s); // 第一个参数是: JSON字符串 System.out.println("4.JSON字符串转换为Object对象-> "+parse); // 5.JSON对象转换为Java对象 Student student1 = JSONObject.toJavaObject(jsonObject, Student.class);// 第一个参数是: json对象;第二个参数是: 类名.class System.out.println("5.JSON对象转换为Java对象-> "+student1); // 6.JSON字符串转换为Map类型 Map map = JSONObject.parseObject(s, Map.class); // 第一个参数是: JSON字符串;第二个参数是: Map.class System.out.println("6.JSON字符串转换为List类型-> "+map); // 7.JSON对象转换为List类型的JSON集合 List lists = JSONObject.parseArray(JSONObject.toJSONString(jsonObject), List.class); // 第一个参数是JSON字符串;第二个是List.class System.out.println("7.JSON对象转换为List类型的JSON集合-> "+lists); // 8.JSON类型的集合转 // // 9.JSON字符串转JSON数组 ----- 没有运行成功!!!! // JSONArray objects = JSONObject.parseArray(s); // 第一个参数是: JSON数组 // System.out.println("9.JSON字符串转JSON数组-> "+objects); // 10.JSON字符串转Java对象 Student student2 = JSONObject.parseObject(s, Student.class);// 第一个参数是: JSON字符串;第二个参数是: 类.class System.out.println("10.JSON字符串转Java对象-> "+student2); } }
3.JSON的二种定义方式
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author Jsxs * @Date 2023/4/5 5:59 * @PackageName:PACKAGE_NAME * @ClassName: testJSON * @Description: TODO * @Version 1.0 */ public class testJSON { public static void main(String[] args) throws Exception { // (1)通过无参构造直接设值 JSONObject object = new JSONObject(); object.put("id",123); object.put("name","jojo"); System.out.println("JSONObject:"+object.toString()); // (2)将JSON对象转成具体的POJO Student student = JSONObject.toJavaObject(object, Student.class); System.out.println("转换成Demo实体类:"+student.toString()); // (3)传入Map的有参构造方法创建 Map<String,Object> myMap = new HashMap<>(2); myMap.put("id",123); myMap.put("name","test"); JSONObject newObject = new JSONObject(myMap); System.out.println("通过有参构造传入Map创建出来的:"+newObject); // (4)将String转JSONObject String demoString = "{name:\"test\", id:123}"; JSONObject demoJson = JSONObject.parseObject(demoString); System.out.println("String转Object : "+demoJson); } }
4.String格式的List转List
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author Jsxs * @Date 2023/4/5 5:59 * @PackageName:PACKAGE_NAME * @ClassName: testJSON * @Description: TODO * @Version 1.0 */ public class testJSON { public static void main(String[] args) throws Exception { String listStr = "[{\"id\":1,\"name\":\"vivi\"},{\"id\":2,\"name\":\"jojo\"}]"; // (1)转Json List JSONArray jsonArray = JSONArray.parseArray(listStr); System.out.println(jsonArray); // (2)转具体的List<实体类> List<Student> listDemo = jsonArray.toJavaList(Student.class); for (Student demo : listDemo){ System.out.println(demo.toString()); } } }
5.遍历JSONArray
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author Jsxs * @Date 2023/4/5 5:59 * @PackageName:PACKAGE_NAME * @ClassName: testJSON * @Description: TODO * @Version 1.0 */ public class testJSON { public static void main(String[] args) throws Exception { String listStr = "[{\"id\":1,\"name\":\"vivi\"},{\"id\":2,\"name\":\"jojo\"}]"; // (1)转Json List JSONArray jsonArray = JSONArray.parseArray(listStr); System.out.println(jsonArray); // (2) 循环遍历JsonArray for (int i = 0; i < jsonArray.size(); i++) { System.out.println(jsonArray.getJSONObject(i)); System.out.println(jsonArray.getJSONObject(i).get("name")); } } }
6.遍历JSONObject
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author Jsxs * @Date 2023/4/5 5:59 * @PackageName:PACKAGE_NAME * @ClassName: testJSON * @Description: TODO * @Version 1.0 */ public class testJSON { public static void main(String[] args) throws Exception { JSONObject jsonObject = new JSONObject(); jsonObject.put("1","a"); jsonObject.put("2","b"); jsonObject.put("3","c"); for (String a : jsonObject.keySet()){ System.out.println("key:"+a+";Value:"+jsonObject.get(a)); } } }