springmvc 返回json数据包报错500

错误信息:

springmvc 返回json数据包报错500_第1张图片

代码结构

springmvc 返回json数据包报错500_第2张图片

 

 

原因分析:

json格式数据中存在null值,导致无法数据json化

Object is null (through reference chain: net.sf.json.JSONObject["data"]->net.sf.json.JSONObject["colorRingName"]->net.sf.json.JSONNull["empty"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["data"]->net.sf.json.JSONObject["colorRingName"]->net.sf.json.JSONNull["empty"])

 

解决方案:

1、把json对象转化为String类型,再有前端技术转回到json对象。$.parseJson(str)

2、在返回JSON之前获取JSON的所有的key,判断key是否为NULL,如果是的话,那么就把它设置成”“,然后再返回,用的springmvc中默认的Jackson,具体用法如下:

 
     
         
             
                 
                     
                         
                   
 
               
 
           
 
       
 
   
    
 

自定义一个类用来处理为NULL的字段:

public class TransferJsonSerializer extends JsonSerializer {  
    @Override  
    public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)  
            throws IOException, JsonProcessingException {  
        jgen.writeString("");
    }  

 

3、用的是阿里的fastjson,配置如下:


   
       
           
               
                   
                    WriteMapNullValue
                    WriteNullNumberAsZero
                    WriteNullListAsEmpty
                    WriteNullStringAsEmpty
                    WriteNullBooleanAsFalse
                    WriteDateUseDateFormat
               

           

       

   

 

你可能感兴趣的:(Exception异常处理)