NutzCN Logo
问答 继承JsonPojoHandler却出了问题
发布于 351天前 作者 daren990 319 次浏览 复制 上一个帖子 下一个帖子
标签:

加了一个自定义的jsonHandler结果,输出的json却是这样的,请问是哪里出了问题

{
   "name": {
      "value": {
      },
      "hash": {
         "value": null
      }
   },
   "tp": {
      "value": null
   },
   "createBy": {
      "value": {
      },
      "hash": {
         "value": null
      }
   },
   "createAt": {
   }
}

4 回复

就是新加了一个handler,handler继承JsonPojoHandler 没有做任何改动

 public static void main(String[] args){
        Json.addTypeHandler(new CorePojoJsonHandler());
        Customer c = new Customer();
        c.setTp(1);
        c.setName("c1");
        String j = Json.toJson(c);
        System.out.println(j);

    }
public class CorePojoJsonHandler extends JsonPojoHandler {
}
public class CorePojoJsonHandler extends JsonPojoHandler {
}

控制台输出

[DEBUG] 2020-02-05 10:42:23,800 org.nutz.castor.Castors.reload(Castors.java:116) - Using 107 castor for Castors
{
   "name": {
      "value": {
      },
      "hash": {
         "value": null
      }
   },
   "tp": {
      "value": null
   },
   "createBy": {
      "value": {
      },
      "hash": {
         "value": null
      }
   },
   "createAt": {
   }
}

仔细看看其他实现类

找到原因了,Json.addTypeHandler(new CorePojoJsonHandler());会将自定义的handler放在第一个,重点是这个方法的返回值 ,

public boolean supportToJson(Mirror<?> mirror, Object obj, JsonFormat jf) {
        return true;
   }
添加回复
请先登陆
回到顶部