Json 结构顺丰

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

public class ApiOuterResponse {
    public String apiErrorMsg;
    public String apiResponseID;
    public String apiResultCode;
    public String apiResultData; // 是字符串,需要手动二次解析成 ApiResultData

    // 内部类,解析apiResultData字段对应的JSON结构
    public static class ApiResultData {
        public boolean success;
        public String errorCode;
        public String errorMsg;
        public MsgData msgData;

        public static class MsgData {
            public List<RouteResp> routeResps;

            public static class RouteResp {
                public String mailNo;
                public List<Route> routes;

                public static class Route {
                    public String acceptAddress;
                    public String acceptTime;
                    public String remark;
                    public String opCode;
                }
            }
        }
    }
}
 

import java.util.List;

public class ApiResponse {
    public boolean success;
    public String errorCode;
    public String errorMsg;
    public MsgData msgData;

    public static class MsgData {
        public String orderId;
        public String originCode;
        public String destCode;
        public Integer filterResult;
        public String remark;
        public String url;
        public String paymentLink;
        public Boolean isUpstairs;
        public Boolean isSpecialWarehouseService;
        public String mappingMark;
        public String agentMailno;
        public List<Object> returnExtraInfoList; // 未明确结构,定义为Object列表
        public List<WaybillNoInfo> waybillNoInfoList;
        public List<RouteLabelInfo> routeLabelInfo;
        public List<Object> contactInfoList; // 未明确结构,定义为Object列表
        public String sendStartTm;
        public String customerRights;
        public String expressTypeId;
    }

    public static class WaybillNoInfo {
        public Integer waybillType;
        public String waybillNo;
        public String boxNo;
        public Double length;
        public Double width;
        public Double height;
        public Double weight;
        public Double volume;
    }

    public static class RouteLabelInfo {
        public String code;
        public RouteLabelData routeLabelData;
        public String message;
    }

    public static class RouteLabelData {
        public String waybillNo;
        public String sourceTransferCode;
        public String sourceCityCode;
        public String sourceDeptCode;
        public String sourceTeamCode;
        public String destCityCode;
        public String destDeptCode;
        public String destDeptCodeMapping;
        public String destTeamCode;
        public String destTeamCodeMapping;
        public String destTransferCode;
        public String destRouteLabel;
        public String proName;
        public String cargoTypeCode;
        public String limitTypeCode;
        public String expressTypeCode;
        public String codingMapping;
        public String codingMappingOut;
        public String xbFlag;
        public String printFlag;
        public String twoDimensionCode;
        public String proCode;
        public String printIcon;
        public String abFlag;
        public String destPortCode;
        public String destCountry;
        public String destPostCode;
        public String goodsValueTotal;
        public String currencySymbol;
        public String cusBatch;
        public String goodsNumber;
        public String errMsg;
        public String checkCode;
        public String proIcon;
        public String fileIcon;
        public String fbaIcon;
        public String icsmIcon;
        public String destGisDeptCode;
        public String newIcon;  // JSON中为null,使用String类型,需根据实际可改为Object
        public String sendAreaCode;
        public String destinationStationCode;
        public String sxLabelDestCode;
        public String sxDestTransferCode;
        public String sxCompany;
        public String newAbFlag;
        public String destAddrKeyWord;
        public String rongType;
        public String waybillIconList; // JSON中为null,定义为String或Object,具体视需求
    }
}
 

import java.util.List;

/**
 * 订单响应包装类
 */
public class OrderResponse {

    /**
     * 是否成功
     */
    public boolean success;

    /**
     * 错误码
     */
    public String errorCode;

    /**
     * 错误信息
     */
    public String errorMsg;

    /**
     * 具体业务数据
     */
    public MsgData msgData;

    public static class MsgData {

        /**
         * 客户订单号
         */
        public String orderId;

        /**
         * 原寄地区域代码,可用于顺丰电子运单标签打印
         */
        public String originCode;

        /**
         * 目的地区域代码,可用于顺丰电子运单标签打印
         */
        public String destCode;

        /**
         * 筛单结果:1=人工确认 2=可收派 3=不可以收派
         */
        public Integer filterResult;

        /**
         * 如果filterResult=3时为必填,不可以收派的原因代码:
         * 1=收方超范围 2=派方超范围 3=其它原因
         * 高峰管控提示信息【数字】:【高峰管控提示信息】
         */
        public String remark;

        /**
         * 二维码URL(用于CX退货操作的URL)
         */
        public String url;

        /**
         * 用于第三方支付运费的URL
         */
        public String paymentLink;

        /**
         * 是否送货上楼 1=是
         */
        public String isUpstairs;

        /**
         * 包含特殊仓库增值服务,true/false
         */
        public String isSpecialWarehouseService;

        /**
         * 下单补充的增值服务信息
         */
        public List<ServiceInfo> serviceList;

        /**
         * 返回信息扩展属性,具体结构未知,暂定义Object
         */
        public List<Object> returnExtraInfoList;

        /**
         * 顺丰运单号列表
         */
        public List<WaybillNoInfo> waybillNoInfoList;

        /**
         * 路由标签列表(必填)
         */
        public List<RouteLabelInfo> routeLabelInfo;

        /**
         * 联系信息列表,具体结构未知,暂定义Object
         */
        public List<Object> contactInfoList;

        /**
         * 发送开始时间
         */
        public String sendStartTm;

        /**
         * 客户权益,具体结构未知,暂定义Object或String
         */
        public Object customerRights;

        /**
         * 快递类型ID
         */
        public Object expressTypeId;

        /**
         * 乡村件不上门标签,1表示是不上门
         */
        public String noToDoorPayment;
    }

    public static class ServiceInfo {
        // 这里根据实际情况定义服务信息的字段
        // 你可以补充字段和注释
    }

    public static class WaybillNoInfo {
        /**
         * 运单类型
         */
        public Integer waybillType;

        /**
         * 运单号
         */
        public String waybillNo;

        /**
         * 箱号
         */
        public String boxNo;

        /**
         * 长度
         */
        public Double length;

        /**
         * 宽度
         */
        public Double width;

        /**
         * 高度
         */
        public Double height;

        /**
         * 重量
         */
        public Double weight;

        /**
         * 体积
         */
        public Double volume;
    }

    public static class RouteLabelInfo {
        /**
         * 返回调用结果,1000调用成功,其他失败
         */
        public String code;

        /**
         * 路由标签详细数据
         */
        public RouteLabelData routeLabelData;

        /**
         * 失败异常描述
         */
        public String message;
    }

    public static class RouteLabelData {
        public String waybillNo;
        public String sourceTransferCode;
        public String sourceCityCode;
        public String sourceDeptCode;
        public String sourceTeamCode;
        public String destCityCode;
        public String destDeptCode;
        public String destDeptCodeMapping;
        public String destTeamCode;
        public String destTeamCodeMapping;
        public String destTransferCode;

        /**
         * 若返回路由标签,则必填。路由标签信息,不同配置结果不同,不能简单用"-"分割
         */
        public String destRouteLabel;

        public String proName;
        public String cargoTypeCode;
        public String limitTypeCode;
        public String expressTypeCode;

        /**
         * 入港映射码,必填
         */
        public String codingMapping;

        public String codingMappingOut;

        /**
         * XB标志 0:不需要打印XB 1:需要打印XB
         */
        public String xbFlag;

        /**
         * 打印标志,共9位,0和1组合,表示面单各字段是否打印
         */
        public String printFlag;

        /**
         * 二维码字符串,格式示例:
         * MMM={'k1':'020W','k2':'020ND','k3':'053','k4':'T801','k5':'SF7444497151060','k6':'','k7':'35656b83'}
         */
        public String twoDimensionCode;

        /**
         * 时效类型:二维码中的K4值
         */
        public String proCode;

        /**
         * 打印图标,8位0/1标记,表示各种托寄物图标是否展示
         */
        public String printIcon;

        /**
         * AB标
         */
        public String abFlag;

        /**
         * 面单图标列表,具体字段结构未知,暂定义Object
         */
        public List<Object> waybillIconList;

        /**
         * 查询异常时返回的错误信息
         */
        public String errMsg;

        public String destPortCode;
        public String destCountry;
        public String destPostCode;
        public String goodsValueTotal;
        public String currencySymbol;
        public String goodsNumber;
        public String destAddrKeyWord;
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值