jackson处理写出的json串如何赋值给String而不直接打印在控制台
我使用JsonGenerator来进行json的处理,但是json字符串直接打印在了控制台,想要将其赋值给String str都不行,想只有它有名没有类似objectMapper.writeValueAsString(bean);之类的方法。谢谢[code=Java][/code]
package com.hoo.test;
import
java.io.IOException;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.Json
MappingException;
import org.codehaus.jackson.map.ObjectMapper;
import com.hoo.entity.AccountBean;
public class Jackson {
public static void main(String[] args) throws JsonGenerationException, JsonMappingException,
IOException {
AccountBean bean = new AccountBean();
bean.setAddress("China-Guangzhou");
bean.setEmail("liu.qiang@trs.com.cn");
bean.setId(1);
bean.setName("liuqiang");
ObjectMapper objectMapper = new ObjectMapper();
JsonGenerator jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(
System.out, JsonEncoding.UTF8);
jsonGenerator.writeObject(bean);
String str = objectMapper.writeValueAsString(bean);
System.out.println(str);
}
}
------解决方案--------------------
StringWriter writer =new StringWriter();
objectMapper.writeValue(writer, bean);
String str = writer.toString();
也就是把System.out 都换成 一个 StringWriter 就行了