Jackson JsonNode用排序键来串

我正在使用Jackson 2.2.3 ,需要将JsonNode树转换为带有排序字段键的字符串。 我完全不清楚如何做到这一点,特别是因为相反的事情很简单JsonNode jn = ObjectMapper.readTree(String s)

看来正确的方法是void writeTree(JsonGenerator jgen,JsonNode rootNode) 。 但是,我认为无法从JsonGenerator获取序列化String 。 我认为SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS仍然适用,因为JsonGenerator.Feature没有该选项。 有没有更简单的方法 – 如果没有,我如何从JsonGenerator检索序列化的字符串?

这是jackson的一位作者提供的最简单的方法。 目前没有办法直接从JsonNode到带有排序键的String

 private static final ObjectMapper SORTED_MAPPER = new ObjectMapper(); static { SORTED_MAPPER.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); } private String convertNode(final JsonNode node) throws JsonProcessingException { final Object obj = SORTED_MAPPER.treeToValue(node, Object.class); final String json = SORTED_MAPPER.writeValueAsString(obj); return json; }