写点什么

java List、Object、String

  • 2022 年 5 月 04 日
  • 本文字数:1411 字

    阅读完需:约 5 分钟

import java.math.BigInteger;


import java.util.List;


import java.util.Map;


import java.util.Set;


import org.apache.commons.logging.Log;


import org.apache.commons.logging.LogFactory;


public class JsonUtil {


private static Log log = LogFactory.getLog(JsonUtil.class);


public static String object2json(Object obj) {


StringBuilder json = new StringBuilder();


if (obj == null) {


json.append("""");


} else if (obj instanceof String || obj instanceof Integer


|| obj instanceof Float || obj instanceof Boolean


|| obj instanceof Short || obj instanceof Double


|| obj instanceof Long || obj instanceof BigDecimal


|| obj instanceof BigInteger || obj instanceof Byte) {


json.append(""").append(string2json(obj.toString())).append(""");


} else if (obj instanceof Object[]) {


json.append(array2json((Object[]) obj));


} else if (obj instanceof List) {


json.append(list2json((List<?>) obj));


} else if (obj instanceof Map) {


json.append(map2json((Map<?, ?>) obj));


} else if (obj instanceof Set) {


json.append(set2json((Set<?>) obj));


} else {


json.append(bean2json(obj));


}


return json.toString();


}


public static String bean2json(Object bean) {


StringBuilder json = new StringBuilder();


json.append("{");


PropertyDescriptor[] props = null;


try {


props = Introspector.getBeanInfo(bean.getClass(), Object.class)


.getPropertyDescriptors();


} catch (IntrospectionException e) {


}


if (props != null) {


for (int i = 0; i < props.length; i++) {


try {


String name = object2json(props[i].getN 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ame());


String value = object2json(props[i].getReadMethod().invoke(


bean));


json.append(name);


json.append(":");


json.append(value);


json.append(",");


} catch (Exception e) {


}


}


json.setCharAt(json.length() - 1, '}');


} else {


json.append("}");


}


return json.toString();


}


public static String list2json(List<?> list) {


StringBuilder json = new StringBuilder();


json.append("[");


if (list != null && list.size() > 0) {


for (Object obj : list) {


json.append(object2json(obj));


json.append(",");


}


json.setCharAt(json.length() - 1, ']');


} else {


json.append("]");


}


return json.toString();


}


public static String array2json(Object[] array) {


StringBuilder json = new StringBuilder();


json.append("[");


if (array != null && array.length > 0) {


for (Object obj : array) {


json.append(object2json(obj));


json.append(",");


}


json.setCharAt(json.length() - 1, ']');


} else {


json.append("]");


}


return json.toString();


}


public static String map2json(Map<?, ?> map) {


StringBuilder json = new StringBuilder();


json.append("{");


if (map != null && map.size() > 0) {


for (Object key : map.keySet()) {


json.append(object2json(key));


json.append(":");


json.append(object2json(map.get(key)));


json.append(",");


}


json.setCharAt(json.length() - 1, '}');


} else {


json.append("}");


}


return json.toString();


}


public static String set2json(Set<?> set) {

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
java List、Object、String_Java_爱好编程进阶_InfoQ写作社区