[FAQ]jackson解决:null到"", 空值处理为空串

1.一个比较头疼的问题:

jackson + spring 支持rest接口,输出的JSON 对于null的字符串是invoiceTitlenull,但是接受方希望返回的是invoiceTitle: ""。解决方法重写ObjectMapper


2.代码如下:

	public JsonMapper() {
		//this(Include.NON_EMPTY);
		// 空值处理为空串
				this.getSerializerProvider().setNullValueSerializer(
						new JsonSerializer() {
							@Override
							public void serialize(Object value, JsonGenerator jgen,
									SerializerProvider provider) throws IOException,
									JsonProcessingException {
								jgen.writeString("");
							}
						});
	}


3.配置如下:


		
			
			
		    	
			
			
			
                  
                      
                 
            
            
            
		        
		        	
				        
				            
				        
				        
				    
		        
		        
			
		

这样之后,还是不能自动匹配规则把整个的JOSN转为: invoiceTitle null,》invoiceTitle: ""

只能通过下面实例实现解决这个问题。

brf.setResultCode(0);
		brf.setRows(orderBlocks);
		brf.setResultMessage("succeed");
		JsonMapper jsonMapper = new JsonMapper();
		return jsonMapper.toJson(brf);

注意使用这种方式需要手动设置编码如下:

@RequestMapping(method = RequestMethod.GET, value = "/test",produces = "application/json; charset=utf-8")


不知为毛,不定位了。

你可能感兴趣的:(Jackson)