1.json按照自己添加的先后顺序进行排序
JSONObject object = new JSONObject();
object.put("aaa", 111);
object.put("bbb", 222);
object.put("ccc", 333);
object.put("ddd", 444);
LOGGER.info(" object: " + JSON.toJSONString(object));
JSONObject object1 = new JSONObject(true);
object1.put("aaa", 111);
object1.put("bbb", 222);
object1.put("ccc", 333);
object1.put("ddd", 444);
LOGGER.info(" object1: " + JSON.toJSONString(object1));
打印出来的结果:
object: {"aaa":111,"ccc":333,"bbb":222,"ddd":444}
object1: {"aaa":111,"bbb":222,"ccc":333,"ddd":444}
默认是false的情况,没有顺序
2.定义的bean,按照指定的顺序
/**
* @author liusn19096
*
*/
public class Person {
@JSONField(ordinal = 1)
private String name;
@JSONField(ordinal = 3)
private String age;
@JSONField(ordinal = 2)
private String type;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public String getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(String age) {
this.age = age;
}
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
}
测试:
Person person = new Person();
person.setAge("25");
person.setName("lsn");
person.setType("nv");
LOGGER.error(" person: " + JSON.toJSONString(person));
在没有定义 @JSONField(ordinal = 1) 这些的时候,打印的结果:
person: {"age":"25","name":"lsn","type":"nv"}
在定义了 @JSONField(ordinal = 1) 这些顺序之后,打印的结果:
person: {"name":"lsn","type":"nv","age":"25"}
按照指定的顺序了
参考文章:
http://blog.csdn.net/zhujianli1314/article/details/48522909
3.json转换,前后的名称不一样,解决的办法
参考文章:
http://blog.csdn.net/u011425751/article/details/51219242