有问题可联系我QQ:429810818

posts - 4, comments - 6, trackbacks - 0, articles - 8
如题,JSON在转换的时候如果你的类型是BigDecimal类型的,DAO层查找出来的数据是为null,经过JSON一转换之后就变成了0
JSON的JSONObject类的   private static void setValue( JSONObject jsonObject, String key, Object value, Class type,
         JsonConfig jsonConfig, boolean bypass ) 这个方法里面的 if( value == null ){
         value = jsonConfig.findDefaultValueProcessor( type )
               .getDefaultValue( type );这个方法处理默认值

最终会有一个类处理所有的无值的默认值

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();
   }
}

所以有同样问题的时候可以试着修改JSON的源码

只有注册用户登录后才能发表评论。


网站导航: