关于对第三方调用接口结果的封装(服务端)

第三方接口返回结果示例如下:

{
    "code": 200,
    "message": "OK",
    "data": {
          "name" : "张三""age" : 21,
          "profession" : "计算机专业"
          }
}

我们可以用Object对象接收返回结果,然后object.get(“data”)获取data,如果想要data里的name属性,需要先把object.get(“data”)在转成Object对象,然后才能object.get(“data”).get(“name”),前后多次用到Object对象,可读性很低,所以建议直接把data里的结果封装成一个对象,这里我们可以定义一个Student对象
1:Student.java

@Data
public class Student{
    private String name;
    private Integer age;
    private String profession;
}

2: 结果转换

Student student= JSONObject.parseObject(object.get("data").toString(), new TypeReference<Student >() {
        });

或者:

Student student= JSONObject.parseObject(object.get("data").toString(), Student.class);

这样就封装好了,我们可以在用到的地方,直接Student对象.get方法获取对应属性,十分方便。
注意:我们自定义类里的属性名要跟接口返回结果一致,否则会映射转换失败。
比如:返回结果示例:

{
    "code": 200,
    "message": "OK",
    "data": {
          "stu_name" : "张三""age" : 21,
          "profession" : "计算机专业"
          }
}

类定义就应该是

@Data
public class Student{
    private String stuName;
    private Integer age;
    private String profession;
}

小结:返回结果里的key是下划线形式命名,类里可以用驼峰式命名,其余情况下,类里的属性名称必须与返回结果里的key一样,否则映射失败,类里面的那个参数就一致是null.

在此基础上我们还可以继续封装。
比如接口返回示例:

{
    "code": 200,
    "message": "OK",
    "data": {
          "students" : [
                        {
                           "stu_name" : "张三""age" : 21,
                           "profession" : "计算机专业"
                       },
                       {
                           "stu_name" : "麻子""age" : 22,
                           "profession" : "计算机专业"
                       }
                 ],
           "area" : "安徽省"
          }
}

这里我们可以先定义一个类
StudentDetail.java

@Data
public class StudentDetail{
    private List<Student> students;
    private String area;
}

这样就把接口返回结果封装好了,其中student参数是一个学生对象数组。
学会了这种方式,在复杂的结果也能封装的看起来一目了然。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值