Jackson在Android上按字母顺序对JSON序列化的输出键进行排序

时间:2019-02-06 17:43:56

标签: java android json jackson

我正在构建一个android应用程序,并且我希望它将一些Java对象序列化为String JSON输出。我正在使用Jackson图书馆。

我建立了一个方法,该方法将对象作为输入并输出String JSON。 当此代码在我的计算机上运行时,我会正确获取JSON输出,这意味着输出键保持在我的对象中声明它们的顺序。当代码在使用Android Studio的android手机上运行时,按键将按字母顺序排序。 就我而言,这是不需要的。

代码如下:

public String toJSON(Object obj){
    ObjectMapper mapper = new ObjectMapper();
    mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);

    try {

        // Convert object to JSON string
        String jsonInString = mapper.writeValueAsString(obj);
        return jsonInString;

    } catch (JsonGenerationException e) {
        e.printStackTrace();
        return "Error";
    } catch (JsonMappingException e) {
        e.printStackTrace();
        return "Error";
    } catch (IOException e) {
        e.printStackTrace();
        return "Error";
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用批注明确告诉杰克逊您希望属性的顺序。看到这个...

https://www.logicbig.com/tutorials/misc/jackson/json-property-order-annotation.html