最近在使用Json-lib,发现有许多BUG,而且开发者早已不在支持,强烈建议不要再使用此开源包。
下面就说说我这个case。最近项目需要对外提供一个接口,要求返回的数据是json格式的,但是当某字段无数据时,要求用空字符表示,而不是null。当我发现在从JavaBean转化为JSONObject时,可以给JSONObject.fromObject()方法传一个JsonConfig参数,给JsonConfig添加一个JsonValueProcessor,这样就可以当value为Null时,设置自己想要的值。但是试了好多次,均不能把null转化为空字符,网上也没有这方面的blog,虽看源代码发现如下,
在JSONObject._fromMap方法中有如下代码:
|
|
在上面代码中可以看到,当value为null时,JsonValueProcessor早已不起作用,只有当value不为null时,JsonValueProcessor才起作用。而在setValue( jsonObject, key, value, value.getClass(), jsonConfig, bypass );方法中:
|
|
这两段代码明显矛盾,所以说在使用JSONObject.fromObject(Object object, JsonConfig jsonConfig)不能使value的值从null变为空字符。
