解决json-lib String null 默认为 ""问题

最近用.Net和Java服务端通信,发现生成JSON时,json-lib自动把所有String中的null,转换成空串"",看源码发现是net.sf.json.processors.DefaultDefaultValueProcessor类中。默认就返回"",Number类型自动返回0。如下:
public class DefaultDefaultValueProcessor implements DefaultValueProcessor {
   public Object getDefaultValue( Class type ) {
      if( JSONUtils.isArray( type ) ){
         return new JSONArray();
      }else if( JSONUtils.isNumber( type ) ){
         if( JSONUtils.isDouble( type ) ){
            return new Double( 0 );
         }else{
            return new Integer( 0 );
         }
      }else if( JSONUtils.isBoolean( type ) ){
         return Boolean.FALSE;
      }else if( JSONUtils.isString( type ) ){
         return "";
      }
      return JSONNull.getInstance();
   }
}


修改源码改成如下即可。
 // return "";
    return null;


对于其他类型默认值也可以根据需要修改。

你可能感兴趣的:(java,json)