接口测试代码中,json字符串、对象的常用转换

做接口测试时,有时会需要转换接口返回值并提取其中的数据,以进行断言,本文基于使用阿里的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);
    }
}

 

posted @ 2020-04-16 16:43  忘记木槿  阅读(649)  评论(0编辑  收藏  举报