【发布时间】:2014-02-11 01:23:47
【问题描述】:
我正在使用 Mule。我有一个从我的内部类填充的 JAVA 对象。它实际上是一个HashMap<String,Object>。 Object 可以是任何东西..另一个HashMap,或List 等..现在我必须将其转换为JSON(并删除所有那些值为NULL的键)..
当我使用给定的 Mule Transformer ObjectToJSON 时,它正在转换为适当的 JSON..但无法删除 NULL 值..而且我找不到任何要在 Custom-transformer 中设置的属性 strong> 将删除 NULL 值..!!
然后,我编写了一个 自定义转换器,它使用 net.sf.json-lib 库,并且我能够删除 NULL 值。
但是在我的一个 JAVA 对象中,我有一个 HashMap<Integer,String>,并且由于在 JSON 对象中,整数不能是键,net.sf.json 库给出了一个例外:
Exception stack is:
1. JSON keys must be strings. (java.lang.ClassCastException)
net.sf.json.JSONObject:1120 (null)
2. java.lang.ClassCastException: JSON keys must be strings. (net.sf.json.JSONException)
net.sf.json.JSONObject:1160 (null)
3. java.lang.ClassCastException: JSON keys must be strings. (net.sf.json.JSONException). Message payload is of type: HashMap (org.mule.api.transformer.TransformerMessagingException)
因此无法将其转换为 JSON..
那么什么是最可行的选择..??
【问题讨论】:
-
如果 JSON 不允许键是数字,可以用
_开始你的键,例如` { _1:你好,_9:世界} ` -
不..我已经制作了我的 JAVA 代码..我无法对其进行更改..其次,我必须将 Integer 提供给我的前端 APP..(尽管它可以是 Integer像“1”这样的字符串)..!!..请建议该怎么做..!!
标签: java json mule transformer