网站 支付宝 接口,网络科技公司名称大全,做内贸的网站,海口制作网页公司场景 通过情况下对前端输出json格式不需要关注字段顺序#xff0c;但某些特殊场景需要设置字段输出顺序(例nginx需要对特殊字段顺序进行加密处理)#xff1b;框架有默认的顺序#xff0c;如 jackson 默认使用字段声明的顺序#xff0c; fastjson 默认是使用字典序。 jackso…场景 通过情况下对前端输出json格式不需要关注字段顺序但某些特殊场景需要设置字段输出顺序(例nginx需要对特殊字段顺序进行加密处理)框架有默认的顺序如 jackson 默认使用字段声明的顺序 fastjson 默认是使用字典序。 jackson 使用JsonPropertyOrder指定顺序 public class JacksonController {public static void main(String[] args) throws JsonProcessingException {//1: 默认顺序:字段声明的顺序Cat1 cat1 new Cat1();cat1.setAge(1);cat1.setName(咪咪);cat1.setHobby(sleep);ObjectMapper objectMapper new ObjectMapper();String json objectMapper.writeValueAsString(cat1);System.out.println(json:json.toString());//2: 使用JsonPropertyOrder指定顺序Cat2 cat2 new Cat2();cat2.setAge(1);cat2.setName(咪咪002);cat2.setHobby(eat);String json2 objectMapper.writeValueAsString(cat2);System.out.println(json2:json2.toString());}
}Data
class Cat1 {private String hobby;private String name;private Integer age;
}Data
JsonPropertyOrder({name, age, hobby})
class Cat2 {private String hobby;private String name;private Integer age;
}fastjson 1、使用JsonField的ordinal指定顺序数越小优先级越高默认为0 2、使用JSONType的orders属性指定字段顺序 public class FastjsonController {public static void main(String[] args){//1: 默认顺序:字段声明的顺序Dog1 dog1 new Dog1();dog1.setAge(1);dog1.setName(嘟嘟001);dog1.setHobby(eat);String json JSON.toJSONString(dog1);System.out.println(默认顺序(字段声明的顺序):json.toString());//2: 使用JsonField的ordinal指定顺序数越小优先级越高默认为0Dog2 dog2 new Dog2();dog2.setAge(1);dog2.setName(嘟嘟002);dog2.setHobby(eat);String json2 JSON.toJSONString(dog2);System.out.println(JsonField ordinal指定顺序:json2.toString());//3: 使用JSONType的orders属性指定字段顺序Dog3 dog3 new Dog3();dog3.setAge(1);dog3.setName(嘟嘟003);dog3.setHobby(eat);String json3 JSON.toJSONString(dog3);System.out.println(JSONType orders指定顺序:json3.toString());}
}Data
class Dog1 {private String hobby;private String name;private Integer age;
}Data
class Dog2 {JSONField(ordinal 3)private String hobby;JSONField(ordinal 2)private String name;JSONField(ordinal 1)private Integer age;
}Data
JSONType(orders {name, age, hobby})
class Dog3 {private String hobby;private String name;private Integer age;
}注意 将json字段串转换成JSON对象时如要保持原字段顺序fastjson使用Feature.OrderedField参数 JSON.parseObject(json, Feature.OrderedField);
SONObject.parseObject(json, Feature.OrderedField);