fastjson java 字段排序_「Java」 - xml & Json 排序输出

项目封装了新的SDK,需要对SDK进行测试,API没有变更。

设计一自动化CASE:

  1. 通过openapi的方式调用YAPI上接口测试用例,返回结果A;
  2. 引入SDK,编写单元测试代码,通过SDK调用接口,返回结果B;
  3. 对结果(xml/Json)进行排序后断言。

因为整个环境只有SDK是新的,所以完成以上CASE,基本可以找出SDK中存在的Bug。

但是返回结果中xml和Json的属性顺序不一定相对,所以用基本的equals可能会存在判断不准确的情况,需要提前对结果进行自然排序,排序后进行比较即可。

一、Json排序

fastjson,使用SerializerFeature.MapSortField参数,可以达到目的。

@Slf4j
public class FastJsonSortTest
{
    
    @Test
    public void testSortJson()
    {
    
        String json = "";
    
        JSONObject jsonObject = JSON.parseObject(json);
        String rs = JSON.toJSONString(jsonObject, SerializerFeature.MapSortField, SerializerFeature.PrettyFormat);
        log.info("rn{}", rs);
    }
}

b284d3be4d7b54c2a01f24d30b2a756c.png

二、xml排序

xml比较复杂,这里只讨论POJO<->xml的形式。

对于比较POJO形式的xml根据node名称进行自然排序即可,使用XSLT进行sort即可。

@Slf4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值