1、要想将Java对象转化成JSON字符串,这里就用到了jackon的jar包,使用writeValueAsString方法就可以把Java对象转化成JSON字符串。
import org.codehaus.jackson.map.ObjectMapper;
public static void registerUser(User user) {
try {
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
}catch(Exception e) {
e.printStackTrace();
}
}
上面就是简单地将传入的user对象转换为JSON字符串的形式,因为我们每次使用都要创建ObjectMapper对象,然后调用方法,为了方便可以封装为一个工具类:
import org.codehaus.jackson.map.ObjectMapper;
public static String toJsonByObject(Object obj){
ObjectMapper mapper = new ObjectMapper();
String jsonStr = null;
try {
jsonStr = mapper.writeValueAsString(obj);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonStr;
}
2、ObjectMapper中writeValue和writeValueAsString的区别:
共性:他们都可以将Java对象转换为JSON字符串。
参数不同:
- writeValue(参数,obj):直接将传入的对象序列化为json,并且返回给客户端;
- writeValueAsString(obj):将传入的对象序列化为json,返回给调用者;
writeValue的参数:有四种重载形式:
- 第一种:file 将转换后的json字符串保存到指定的file文件中
- 第二种:writer 将转换后的json字符串保存到字符输出流中
- 第三种:outputStream将转换后的json字符串保存到字节输出流中
- 第四种:jsonGenerator类(不常用,不作介绍)