gsi*_*011 16 java json terminate jackson
我正在使用Jackson库创建JSON对象,但是当我使用mapper.writeValue(System.out,responseData)函数时,程序终止.这是我的代码:
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class Test {
public static void main(String[] args){
new Test().test();
}
public void test() {
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> responseData = new HashMap<String, Object>();
responseData.put("id", 1);
try {
mapper.writeValue(System.out, responseData);
System.out.println("done");
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}.
}
Run Code Online (Sandbox Code Playgroud)
执行此操作后,控制台显示{"id":1},但不显示"已完成".
Pro*_*uce 17
问题在于Jackson实现,因为ObjectMapper._configAndWriteValue调用UtfGenerator.close(),它调用PrintStream.close().
我将在https://jira.codehaus.org/browse/JACKSON上记录一个问题
要更改目标被关闭的默认行为,您可以执行以下操作:
mapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8581 次 |
| 最近记录: |