json字符串序列化后顺序问题。

在Java项目中,确保JSON字符串转为JSONObject时顺序不变对于某些应用场景至关重要,例如在编写JUnit测试时。当比较两个JSON字符串是否一致时,不仅要求键值对相同,还要求顺序一致。本文探讨了如何在使用fastJson时保持序列化的顺序,包括尝试通过构造函数参数和自定义排序策略来解决这个问题。
摘要由CSDN通过智能技术生成

1、应用场景:如果项目中用到json字符串转为jsonObject的需求,并且,需要保证字符串的顺序转之前和转成jsonObject之后输出的结果完全一致。可能有点绕口,下面举一个应用场景的例子。

在做项目的过程中,需要写Junit单元测试,有一个方法如下:

 @Test
   @SuppressWarnings("unchecked")
   public void facilitySoftwareQueryByPageExample() throws Exception {
      facilitySoftwareRepository.deleteAll();
      FacilitySoftwareConfig facilitySoftware = createFacilitySoftware();
      facilitySoftwareRepository.save(facilitySoftware);
      String userId = "1";
      int pageNumber = 1;
      int pageSize = 5;
      String facilities = objectMapper.writeValueAsString(facilitySoftware);
      LinkedHashMap<String, Object> jsonMap = JSON.parseObject(facilities,LinkedHashMap.class, Feature.OrderedField);
      JSONArray jsonArray = new JSONArray();
      JSONObject jsonObject = new JSONObject(true);
      jsonObject.putAll(jsonMap);
      jsonArray.ad
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值