Я использую Мул .У меня есть объект 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 Integer не может быть ключами, 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 ..
Так какой же самый жизнеспособный вариант .. ??