Java的将任意格式转换为JSON数据格式的工具类
来源:互联网 发布:mac版的excel怎么换行 编辑:程序博客网 时间:2024/05/18 00:12
import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.util.List; import java.util.Map; import java.util.Set; public class JsonUtils { public static String stringToJson(String s) { if (s == null) { return nullToJson(); } StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); switch (ch) { case '"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; case '/': sb.append("\\/"); break; default: if (ch >= '\u0000' && ch <= '\u001F') { String ss = Integer.toHexString(ch); sb.append("\\u"); for (int k = 0; k < 4 - ss.length(); k++) { sb.append('0'); } sb.append(ss.toUpperCase()); } else { sb.append(ch); } } } return sb.toString(); } public static String nullToJson() { return ""; } public static String objectToJson(Object obj) { StringBuilder json = new StringBuilder(); if (obj == null) { json.append("\"\""); } else if (obj instanceof Number) { json.append(numberToJson((Number) obj)); } else if (obj instanceof Boolean) { json.append(booleanToJson((Boolean) obj)); } else if (obj instanceof String) { json.append("\"").append(stringToJson(obj.toString())).append("\""); } else if (obj instanceof Object[]) { json.append(arrayToJson((Object[]) obj)); } else if (obj instanceof List) { json.append(listToJson((List<?>) obj)); } else if (obj instanceof Map) { json.append(mapToJson((Map<?, ?>) obj)); } else if (obj instanceof Set) { json.append(setToJson((Set<?>) obj)); } else { json.append(beanToJson(obj)); } return json.toString(); } public static String numberToJson(Number number) { return number.toString(); } public static String booleanToJson(Boolean bool) { return bool.toString(); } /** * @param bean * bean对象 * @return String */ public static String beanToJson(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 = objectToJson(props[i].getName()); String value = objectToJson(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(); } /** * @param list * list对象 * @return String */ public static String listToJson(List<?> list) { StringBuilder json = new StringBuilder(); json.append("["); if (list != null && list.size() > 0) { for (Object obj : list) { json.append(objectToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } /** * @param array * 对象数组 * @return String */ public static String arrayToJson(Object[] array) { StringBuilder json = new StringBuilder(); json.append("["); if (array != null && array.length > 0) { for (Object obj : array) { json.append(objectToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } /** * @param map * map对象 * @return String */ public static String mapToJson(Map<?, ?> map) { StringBuilder json = new StringBuilder(); json.append("{"); if (map != null && map.size() > 0) { for (Object key : map.keySet()) { json.append(objectToJson(key)); json.append(":"); json.append(objectToJson(map.get(key))); json.append(","); } json.setCharAt(json.length() - 1, '}'); } else { json.append("}"); } return json.toString(); } /** * @param set * 集合对象 * @return String */ public static String setToJson(Set<?> set) { StringBuilder json = new StringBuilder(); json.append("["); if (set != null && set.size() > 0) { for (Object obj : set) { json.append(objectToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } }
阅读全文
0 0
- 将任意格式转换为JSON数据格式的工具类
- 将任意格式转换为JSON数据格式的工具类
- 将任意格式转换为JSON数据格式的工具类
- 将任意格式转换为JSON数据格式的工具类
- 将任意格式转换为JSON数据格式的工具类
- Java的将任意格式转换为JSON数据格式的工具类
- 如何将json数据转换为常见的数据格式
- 如何将json数据转换为常见的数据格式
- 将SQL Server的任意记录转换为JSON格式(JQGRID) -- 支持SQL 2005
- 将json格式的数组字符串转换为java集合
- 将JS的任意对象输出为json格式字符串
- android 将数据转换成JSON数据格式并使用JSONObject解析JSON格式的数据
- 任意格式转换为json
- Java对象转换为json字符串的工具类
- 任意对象转换为JSON格式
- java将小写金额转换为大写的工具类
- java将小写金额转换为大写的工具类
- 分享一个转换数字格式的函数,将任意数字转化为5.00样式的数字
- OkHttp3Util--可用
- 当window.parent.fun();子页面调用父页面方法不起作用时
- 泛型集合
- JavaScript 30 Day -- 10 自定义视频播放器
- pytorch 与 BatchNormalization
- Java的将任意格式转换为JSON数据格式的工具类
- JAVA总结(流程控制2--循环结构)
- mybatis 中 foreach标签的几种用法
- 如何使用Eclipse自带的工具建立数据库连接
- 生成动态 SQL 语句的框架 MyBatis Dynamic SQL
- java接口和抽象类到底有哪些区别,什么时候该用接口什么时候该用抽象类
- 嵌入式C小秘密之你不知道的异常处理
- APIUtil
- 当单片机没有晶振?...