在对java对象的键和值进行排序后,将其打印为JSON字符串



我有一个带有多个键的java对象,值可以是数组列表。我想将对象打印为JSON字符串,但输出应该对键和值进行排序。在值的情况下,排序应该在数组本身(如果有(中

例如,我有这个JSON表示的POJO

{
"d": ["d","a", "r"],
"c": "arr",
"a": "2020-10-01:00:00"
}

预期输出应为:

{"a": "2020-10-01:00:00", "c": "arr", "d": ["d","a", "r"]}

在输出中,键是相对于彼此排序的,但值数组是在其内部排序的。

如果您想根据键进行排序,请只使用以下代码和JSON依赖项(https://mvnrepository.com/artifact/org.json/json/20140107)-

String[] arr = { "d", "a", "r" };
Map<String, Object> data = new TreeMap<>();
data.put("d", arr);
data.put("c", "arr");
data.put("a", "2020-10-01:00:00");
JSONObject sortedDate = new JSONObject(data);
System.out.println(sortedDate);

最新更新