我正在尝试按照JSON元素值的排序顺序从Map生成JSON字符串。这是我的JSON

"customer": {
      "id": "168252733",
      "firstName": "OTP",
      "lastName": "KPI",
      "contact": {
        "emailAddress": "nona.adams1@gmail.com",
        "phone": [
          {
            "number": "2567775065",
            "type": "primary"
          },
          {
            "number": "2567775065",
            "type": "secondary"
          }
        ]
      }
    }


这个Json可以包含多个客户记录,但是我希望生成的json应该根据用户的喜好按照姓,名或电子邮件的排序顺序排列。

我是JACKSON的新手,不知道如何实现它。有人可以帮我吗?
提前致谢。

最佳答案

选项1 :

一种简单的方法是在序列化之前使用Arrays.sort(T[] a, Comparator<? super T> c)根据用户首选项对“客户列表”进行排序。

您需要为每个用户首​​选项创建比较器,然后使用Arrays.sort(customerList, firstNameComparator)

选项2:

如果要从JSON排序客户列表,则需要注册Custom Deserializer,然后您的CustomerListDeserializer生成客户排序列表

  SimpleModule simpleModule = new SimpleModule().addDeserializer(CustomerList.class, new CustomerListDeserializer());
        mapper.registerModule(smipleModule);


选项3:

首先反序列化为“客户对象列表”,然后应用排序。

09-30 15:36
查看更多