做接口测试时,有时会需要转换接口返回值并提取其中的数据,以进行断言,本文基于使用阿里的fastjson包的前提下,整理了一些最常用的类型转换:
1.将json字符串 → List集合
String json = “{'name':zhangsan,'age':34,'sex':female,'department’:qa}"; String[] arr = json.substring(1,json.length()-1).split(","); List<String> list = Arrays.asList(arr); for(String str:list) { System.out.println(str); }
2.json字符串 → java数组
String str1 = "{"name":"袁野","age":18,"career":"student"}"; //json字符串转换成java数组 String[] strArr = str1.substring(1,str1.length()-1).split(",");
3.json字符串 → java对象
String str1 = "{"id":1,"username":"袁野","password":"123456","career":"student"}"; User user = JSONObject.parseObject(str1,User.class);
4.json字符串 → jJSONObject
public void test(){ String str = "{"name":"袁野","age":18,"career":"student"}"; JSONObject jsonObject = JSONObject.parseObject(str); }
5.json字符串 → JSONArray
String jsonStr1 = "[{"id":1,"name":"王立波","age":28,"password":"123456"}]";
JSONArray array = JSONArray.parseArray(jsonStr1);
6.java对象 → json字符串,再转为JSONObject、JSONArray
public void test(){ User user = new User(); user.setId(1); user.setUsername("西施"); user.setPassword("123456"); user.setEmail("xishi@skio.cn"); user.setCreate_time("2020-01-02"); String str2 = JSONObject.toJSONString(user); //底层是用Map实现的,也可以用Map来接收 JSONObject jsonObject = JSONObject.parseObject(str2); JSONArray jsonArray = JSONArray.parseArray("["+str2+"]"); }
7.java对象列表 → json对象数组
List<User> userList = new ArrayList<>(); userList.add(new User()); userList.add(new User()); String str = JSONObject.toJSONString(userList); JSONArray jsonArray = JSONArray.parseArray(str);
8.在JOSNObject中,提取JSONArray
JSONObject jsonObject = JSONObject.parseObject(str1);
JSONArray jsonArray = jsonObject.getJSONArray("data");
9.JSONArray中,提取JSONObject及遍历
public void test(){ String str1 = "[{"id":1,"username":"袁野","password":"123456","career":"student"}," + "{"id":2,"username":"方文斌","password":"123456","career":"teacher"}," + "{"id":3,"username":"黎明","password":"123456","career":"teacher"}]"; // String[] arr = str1.substring(1,str1.length()-1).split(","); JSONArray jsonArray = JSONArray.parseArray(str1); JSONObject jsonObject = jsonArray.getJSONObject(0); for(Object obj:jsonArray) { JSONObject o = JSONObject.parseObject(obj.toString()); } }
10. JSON字符串 → java对象列表
public void test(){ String str1 = "[{"id":1,"username":"袁野","password":"123456","email":"test1@skio.cn","create_time":"2020-02-15"}," + "{"id":2,"username":"方辉","password":"123456","email":"test2@skio.cn","create_time":"2020-02-16"}," + "{"id":3,"username":"沈斌","password":"123456","email":"test3@skio.cn","create_time":"2020-02-17"}]"; List<User> userList = new ArrayList<>(); JSONArray jsonArray = JSONArray.parseArray(str1); User user; for(Object obj:jsonArray) { user = JSONObject.parseObject(JSONObject.toJSONString(obj),User.class); userList.add(user); } }