在不利用第三方工具情况下,将对象与json之间进行相互转换
import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.math.BigDecimal; import java.math.BigInteger; import java.util.List; import java.util.Map; import java.util.Set; /** * 功能:将数据格式转换成json工具类 作者:jackKang 时间:2011-03-12 21:09:10 版本:1.0 */ public class JsonUtil { /** * * 功能:实现将一个ojb对象转换成json格式数据的方法 时间:2011-3-12 下午09:24:23 * * @param obj * @return:返回封装好的json格式数据 */ @SuppressWarnings("unchecked") 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(); } /** * * 功能:将一个实体对象封装成json格式数据的方法 时间:2011-3-12 下午09:25:44 * * @param bean * @return:json格式Bean对象 */ 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].getName()); String value = object2json(props[i].getReadMethod().invoke( bean)); json.append(name); json.append(":"); json.append(value); json.append(","); } catch (Exception e) { System.out.println("转换出错:" + e.getMessage()); } } json.setCharAt(json.length() - 1, '}'); } else { json.append("}"); } /* 返回转换好的json格式 */ return json.toString(); } /** * * 功能:将一个List集合对象转换成json格式的方法 时间:2011-3-12 下午09:26:51 * * @param list * :集合对象 * @return:转换后的json List对象 */ 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("]"); } /* 返回数据转换后的集合json对象 */ return json.toString(); } /** * 功能:将一个数组转换成json格式方法 时间:2011-3-12 下午09:28:24 * * @param array * :数组 * @return:转换后的json对象格式数据 */ 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(); } /** * * 功能:将一个Map集合转换成json格式数据方法 时间:2011-3-12 下午09:29:35 * * @param map * @return */ 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("}"); } /* 返回转换后的json数据格式 */ return json.toString(); } /** * 功能:将set集合转换成json格式数据的方法 时间:2011-3-12 下午09:30:24 * * @param set * :Set对象 * @return:转换后的json格式数据 */ public static String set2json(Set<?> set) { StringBuilder json = new StringBuilder(); json.append("["); if (set != null && set.size() > 0) { for (Object obj : set) { json.append(object2json(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } /* 返回转换拼接后的json格式 */ return json.toString(); } /** * 功能:将一个String格式的数据转换成json格式的方法 时间:2011-3-12 下午09:31:41 * * @param s * :参数 * @return:转换后的json格式 */ public static String string2json(String s) { if (s == null) return ""; 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(); } }
相关推荐
本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...
本文将详细介绍如何使用JSON转换工具,包括将JSON字符串转换为Objective-C的JsonModel和Swift的HandyJSON,以及JsonModel到HandyJSON的转换。 首先,让我们了解一下JsonModel。JsonModel是Objective-C的一个库,它...
java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...
这里提到的"andriod之json转换工具jar包"是一个专门为Android平台设计的JSON处理库,帮助开发者快速地将Java对象转换为JSON格式,反之亦然。 该jar包包含了两个关键组件: 1. `jackson-mapper-asl-1.9.11.jar`:这...
描述中提到的"在开发过程中总是遇到需要类似的工具类,但是没有好用的",这反映出JSON转换在实际开发中的常见需求,以及`Newtonsoft.Json`在满足这些需求时的高效性和易用性。通过这个工具类,开发者可以避免手动...
本篇将详细介绍"C#平台JSON转换工具"的相关知识点。 1. JSON与C#的结合: C#提供了System.Json命名空间(在.NET Framework 3.5 SP1及更高版本中引入)来处理JSON,但这个API在.NET Framework 4.0中已被弃用。...
对象与json相互转换,map转json,json转map等基础工具类
JSON转换工具通常包含以下功能: 1. **解析JSON**: 工具首先需要解析JSON文本,将其转化为内存中的数据结构。这涉及到验证JSON语法的正确性,如正确的大括号匹配、引号使用等。 2. **编组数据**: 将解析后的JSON...
《grib2json转换工具详解》 在信息技术领域,数据交换和处理的格式多样,其中GRIB(GRIdded Binary)和JSON(JavaScript Object Notation)是两种常见的数据存储和传输格式。GRIB主要用于气象、海洋学等领域,存储...
《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...
json转换工具类,可以转换很多格式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。