我正在使用骡子。我有一个从我的内部类填充的 JAVA 对象。它实际上是一个HashMap<String,Object>
. Object
可以是任何东西..另一个HashMap
,或List
等..现在我必须将其转换为JSON
(并删除所有那些值为 NULL 的键)..
当我使用给定的 Mule Transformer 时ObjectToJSON
,它正在转换为适当的 JSON..但无法删除 NULL 值..而且我找不到任何要在Custom-transformer中设置的属性来删除 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 ..
那么什么是最可行的选择..??