我正在构建一个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";
}
}
答案 0 :(得分:0)
您可以使用批注明确告诉杰克逊您希望属性的顺序。看到这个...
https://www.logicbig.com/tutorials/misc/jackson/json-property-order-annotation.html