赞
踩
相关类与接口
ObjectSerializer
- public interface ObjectSerializer {
-
- void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException;
- }
ObjectDeserializer
- public interface ObjectDeserializer {
-
- <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName);
-
- int getFastMatchToken();
- }
示例
CustomSerializer:序列化类
- public class CustomSerializer implements ObjectSerializer {
-
- @Override
- public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
- serializer.write("gtlx "+object);
- }
- }
CustomDeserializer:反序列化类
- public class CustomDeserializer implements ObjectDeserializer {
-
- @Override
- @SuppressWarnings("unchecked")
- public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
- if (type.getTypeName().contains("String")){
- String text=(String)parser.parse(fieldName);
-
- return (T)("hello "+text.split(" ")[1]);
- }
-
- return (T)parser.parse(fieldName);
- }
-
- @Override
- public int getFastMatchToken() {
- return 0;
- }
- }

Test3:测试类
- @Data
- class Student{
-
- private String id;
-
- @JSONField(serializeUsing = CustomSerializer.class,deserializeUsing = CustomDeserializer.class)
- private String name;
- private Integer age;
- }
-
- public class Test3 {
-
- public static void main(String[] args){
- Student student=new Student();
- student.setId("2");
- student.setName("瓜田李下");
- student.setAge(20);
-
- String jsonString=JSON.toJSONString(student);
- System.out.println(jsonString);
-
- Student s=JSON.parseObject(jsonString,Student.class);
- System.out.println(s);
- }
- }

***************
控制台输出
- {"age":20,"id":"2","name":"gtlx 瓜田李下"}
- Student(id=2, name=hello 瓜田李下, age=20)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。