如何通过 KEY 按字母顺序创建 JSON (Java)

ABD*_*ABD 8 java json

我得到了JSON,但它不是按字母顺序排列的。如何按它排序 ?JSON:jsonKEY

{"b":"3","c":"1","a":"4"}
Run Code Online (Sandbox Code Playgroud)

预期输出:

{"a":"4","b":"3","c":"1"}
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。我真的很感谢你的帮助!谢谢!

luc*_*kim 9

您可以使用杰克逊库。

首先在maven依赖中添加一个jackson。

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.7</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

然后使用下面的代码。

    String jsonData = "{\"e\":\"6\",\"f\":\"1\",\"b\":\"3\",\"c\":\"1\",\"a\":\"4\"}";
    ObjectMapper om = new ObjectMapper();
    om.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
    Map<String, Object> map = om.readValue(jsonData, HashMap.class);
    String json = om.writeValueAsString(map);
    System.out.println(json); // result : {"a":"4","b":"3","c":"1","e":"6","f":"1"}
Run Code Online (Sandbox Code Playgroud)

当我测试它时,我得到排序形式的输出。

{"a":"4","b":"3","c":"1","e":"6","f":"1"}

  • 警告 - /sf/ask/2437227901/ (3认同)

小智 0

您可以使用地图来实现此目的,然后根据地图键对地图进行排序。之后将其插入到 JSON 对象中。在您的情况下,将地图声明为:

Map<String,Integer> mapName = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)