public staticObject toJSON(Object javaObject, SerializeConfig config) {if (javaObject == null) {return null;
}else if (javaObject instanceofJSON) {returnjavaObject;
}else{
JSONObject json;intlen;if (javaObject instanceofMap) {
Map map =(Map)javaObject;
len=map.size();
Object innerMap;if (map instanceofLinkedHashMap) {
innerMap= newLinkedHashMap(len);
}else if (map instanceofTreeMap) {
innerMap= newTreeMap();
}else{
innerMap= newHashMap(len);
}
json= newJSONObject((Map)innerMap);
Iterator var24=map.entrySet().iterator();while(var24.hasNext()) {
Entry entry =(Entry)var24.next();
Object key=entry.getKey();
String jsonKey=TypeUtils.castToString(key);
Object jsonValue=toJSON(entry.getValue(), config);
json.put(jsonKey, jsonValue);
}returnjson;
}else{
Object item;if (javaObject instanceofCollection) {
Collection collection =(Collection)javaObject;
JSONArray array= newJSONArray(collection.size());
Iterator var19=collection.iterator();while(var19.hasNext()) {
Object item=var19.next();
item=toJSON(item, config);
array.add(item);
}returnarray;
}else if (javaObject instanceofJSONSerializable) {
String json=toJSONString(javaObject);returnparse(json);
}else{
Class> clazz =javaObject.getClass();if(clazz.isEnum()) {return((Enum)javaObject).name();
}else if(clazz.isArray()) {
len=Array.getLength(javaObject);
JSONArray array= newJSONArray(len);for(int i = 0; i < len; ++i) {
item=Array.get(javaObject, i);
Object jsonValue=toJSON(item);
array.add(jsonValue);
}returnarray;
}else if(ParserConfig.isPrimitive2(clazz)) {returnjavaObject;
}else{
ObjectSerializer serializer=config.getObjectWriter(clazz);if (serializer instanceofJavaBeanSerializer) {
JavaBeanSerializer javaBeanSerializer=(JavaBeanSerializer)serializer;
json= newJSONObject();try{
Map values =javaBeanSerializer.getFieldValuesMap(javaObject);
Iterator var7=values.entrySet().iterator();while(var7.hasNext()) {
Entry entry =(Entry)var7.next();
json.put((String)entry.getKey(), toJSON(entry.getValue(), config));
}returnjson;
}catch(Exception var11) {throw new JSONException("toJSON error", var11);
}
}else{
String text=toJSONString(javaObject);returnparse(text);
}
}
}
}
}
}