我正在尝试按照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:
首先反序列化为“客户对象列表”,然后应用排序。