Object bValue = crBean.getAttrMap().get(entry);
if (bValue != null) {
// deal with multivalue attributes
if ((bValue.getClass().isArray() && !(bValue instanceof byte[])) || bValue instanceof List) {
JSONArray value = new JSONArray();
List<Object> arr;
if (bValue instanceof List) {
arr = new ArrayList<Object>();
List<Object> ob_arr = (List<Object>) bValue;
for (Object obj : ob_arr) {
String v = "";
v = convertToString(obj);
arr.add(v);
}
} else {
arr = new ArrayList<Object>();
Object[] ob_arr = (Object[]) bValue;
for (Object obj : ob_arr) {
String v = "";
v = convertToString(obj);
arr.add(v);
}
}
value.addAll(arr);
attrContainer.element(entry, value);
} else if (bValue instanceof Map<?, ?>) {
attrContainer.element(entry, bValue);
}
// dealt with single value attributes (String, Number,
// ByteArray)
else {
String value = "";
value = convertToString(bValue);
attrContainer.element(entry, value);
}
}
}
objElement.element("attributes", attrContainer);
}
if (crBean.getChildRepository() != null && crBean.getChildRepository().size() > 0) {
// JSONObject childContainer = new JSONObject();
JSONArray childContainer = new JSONArray();
for (Iterator it = crBean.getChildRepository().iterator(); it.hasNext();) {
CRResolvableBean chBean = (CRResolvableBean) it.next();
JSONObject chElement = processElement(chBean);
childContainer.add(chElement);
// childContainer.element(chBean.getContentid(),chElement);
}
objElement.element("children", childContainer);
}
return objElement;