001package gudusoft.gsqlparser.util.json; 002 003import gudusoft.gsqlparser.dlineage.util.BeanUtil; 004 005import java.lang.reflect.Array; 006import java.util.ArrayList; 007import java.util.Collection; 008import java.util.List; 009 010public class JSONRender { 011 012 public String toJSONString(Object obj) { 013 return toJSONString(obj, false); 014 } 015 016 public String toJSONString(Object obj, boolean ignoreId) { 017 if (obj.getClass().isArray()) { 018 int size = Array.getLength(obj); 019 List<Object> arrayList = new ArrayList<>(size); 020 for (int i = 0; i < size; i++) { 021 arrayList.add(Array.get(obj, i)); 022 } 023 obj = arrayList; 024 } 025 026 if (obj instanceof Collection) { 027 List<Object> mappedList = new ArrayList<>(); 028 for (Object element : (Collection<?>) obj) { 029 mappedList.add(BeanUtil.bean2Map(element)); 030 } 031 return new JSONSerializer(ignoreId).serialize(mappedList); 032 } else { 033 return new JSONSerializer(ignoreId).serialize(BeanUtil.bean2Map(obj)); 034 } 035 } 036 037 private static class Holder { 038 private static final JSONRender INSTANCE = new JSONRender(); 039 } 040 041 public static JSONRender getInstance() { 042 return Holder.INSTANCE; 043 } 044 045 private JSONRender() { 046 } 047}