接上一篇–Jackson:Json处理
对于Json的序列化,FastJson的功能比Jackson要好,如果不想使用Jackson,则也可以按照其他的Json处理方案如:FastJson
com.alibaba
fastjson
1.2.54
1.2 安装FastJson
在mvc.xml文件的注解驱动标签中加一个子标签
application/json
1.3 User添加注解
public class User2 {
@JSONField(serialize = false)
//serialize:当前属性不进入json序列化
private Integer id;
@JSONField(name = "NAME",serialzeFeatures = SerializerFeature.WriteNullStringAsEmpty)
//name:属性改名;serialzeFeatures:如果name属性值为空,也输出,输出"",空字符串
private String name;
@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)
//serialzeFeatures:如果city属性的值为空,也输出,输出一个null
private String city;
@JSONField(format = "yyyy/MM/dd")
//serializeUsing:日期的格式化
private Date birth;
@JSONField(serializeUsing = MySerializer2.class)
private Double salary;
//get set 构造方法
}
1.4 MySerializer2.java序列化salary
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import java.io.IOException;
import java.lang.reflect.Type;
public class MySerializer2 implements ObjectSerializer {
@Override
public void write(JSONSerializer jsonSerializer, Object o, Object o1, Type type, int i) throws IOException {
Double value = (Double) o;//o: salary属性值
String text = value+"元";
jsonSerializer.write(text);
}
}
- Controller
@RequestMapping("/json")
@RestController
public class JSONController {
@RequestMapping("/test3")
public User2 test3(){
User2 user2 = new User2(1,null,null,new Date(),22222.38);
System.out.println(user2);
return user2;
}
}
1.5 Tomcat运行结果



