前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java映射 转换post response T data

Java映射 转换post response T data

作者头像
oktokeep
发布2024-10-09 11:04:05
发布2024-10-09 11:04:05
8600
代码可运行
举报
文章被收录于专栏:第三方工具第三方工具
运行总次数:0
代码可运行

Java映射 转换post response data

接上篇

Java泛型对象在http请求和响应对象中的封装

https://cloud.tencent.com/developer/article/2455773

demo1

代码语言:javascript
代码运行次数:0
复制
public class ResponseBase<T> {
    private String resCode;
    private String resMsg;
//    private List<T> data;
    private T data;   //实际接收的是String字符串


    public String getResCode() {
        return resCode;
    }

    public void setResCode(String resCode) {
        this.resCode = resCode;
    }

    public String getResMsg() {
        return resMsg;
    }

    public void setResMsg(String resMsg) {
        this.resMsg = resMsg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
    
}

public class JsonListTest {
    public static void main(String[] args) {
        String myRemarkJson = "Json串,data可以是列表的json串";

        List<MyAppWorkOrderResponseVO> list = new ArrayList<>();

//        ResponseBase<String> responseVO = JSON.parseObject(myRemarkJson, ResponseBase.class);
        //同上面的 默认是String
        ResponseBase responseVO = JSON.parseObject(myRemarkJson, ResponseBase.class);
        //如果写成如下是错误的
        //ResponseBase<MyAppWorkOrderResponseVO> responseVO = JSON.parseObject(myRemarkJson, ResponseBase.class);
        
        System.out.println("getRemarkInfo responseData=" + GsonUtils.toJson(responseVO));
        if(responseVO != null && "000000".equals(responseVO.getResCode()) && responseVO.getData() != null) {
//                //去掉   syntax error, expect {, actual [, pos 0, fastjson-version 1.2.83
            System.out.println("sss=" + responseVO.getData().toString());
            list = JSON.parseArray(responseVO.getData().toString(), MyAppWorkOrderResponseVO.class);
        }
        System.out.println("getRemarkInfo list=" + GsonUtils.toJson(list));

    }
}

demo2

代码语言:javascript
代码运行次数:0
复制
public class MyPartnerBaseResponse<T> extends PartnerBaseResponse {
    /**
     *状态码表0成功,其他失败
     */
    private Integer returncode;
    /**
     *业务操作码 成功”success”
     */
    private String operate;
    /**
     *返回结果消息
     */
    private String message;
    /**
     * 返回结果数据,详情json
     */
    private T result;

    public T getResult() {
        return result;
    }

    public void setResult(T result) {
        this.result = result;
    }

    public Integer getReturncode() {
        return returncode;
    }

    public void setReturncode(Integer returncode) {
        this.returncode = returncode;
    }

    public String getOperate() {
        return operate;
    }

    public void setOperate(String operate) {
        this.operate = operate;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}


        //默认T是接收的是字符串
        MyPartnerBaseResponse baseResVo = JSON.parseObject(resultJsonData, MyPartnerBaseResponse.class);
        if(baseResVo.getResult() != null) {
            response = JSON.parseObject(baseResVo.getResult().toString(), PiccHangzhouAuthorizationQueryResponse.class);
            baseResVo.setResult(response);
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档