Json 自定义使用函数的简单实例
程序员文章站
2024-03-11 21:49:07
如下所示:
/*
* created on nov 4, 2016
*
* todo to change the template for this...
如下所示:
/* * created on nov 4, 2016 * * todo to change the template for this generated file go to * window - preferences - java - code style - code templates */ package com.suning.commerce.util; import java.sql.date; import java.sql.time; import java.sql.timestamp; import java.util.collection; import java.util.iterator; import java.util.map; import org.apache.commons.beanutils.beanutils; /** * @author nicholas tse * * todo to change the template for this generated type comment go to window - preferences - java - code style - code templates */ public class jsonutils { /** * * @param array * @return */ private static string array2json(object[] array) { if (array.length == 0) return "[]"; int i = array.length; stringbuffer sb = new stringbuffer(i << 4); sb.append('['); for (int j = 0; j < i; j++) { object o = array[j]; sb.append(tojson(o)); sb.append(','); } // 将最后添加的 ',' 变为 ']': sb.setcharat(sb.length() - 1, ']'); return sb.tostring(); } private static string string2json(string s) { stringbuffer sb = new stringbuffer(s.length() + 20); sb.append('\"'); for (int i = 0; i < s.length(); i++) { char c = s.charat(i); switch (c) { case '\"': sb.append("\\\""); break; 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; default: sb.append(c); } } sb.append('\"'); return sb.tostring(); } public static string tojson(object o) { if (o == null) { return "null"; } else if (o instanceof string) { return string2json((string) o); } else if ((o instanceof boolean) || (o instanceof number)) { return o.tostring(); } else if ((o instanceof date) || (o instanceof time)||o instanceof timestamp) { return o.tostring(); } else if (o instanceof java.util.date) { return dateutil.formatdate((java.util.date)o,"yyyy-mm-dd hh:mm:ss"); } else if (o instanceof map) { return map2json((map) o); } else if (o instanceof object[]) { return array2json((object[]) o); } else if (o instanceof collection) { return array2json(((collection) o).toarray()); } else { try { map describe = beanutils.describe(o); return map2json(describe); } catch (exception e) { // todo auto-generated catch block e.printstacktrace(); } } throw new runtimeexception("unsupported type: " + o.getclass().getname()); } /** * * @param map * @return */ private static string map2json(map map) { if (map.isempty()) return "{}"; stringbuffer sb = new stringbuffer(map.size() << 4); sb.append('{'); iterator iterator = map.keyset().iterator(); while (iterator.hasnext()) { object key = iterator.next(); object value = map.get(key); sb.append('\"'); sb.append(key); sb.append('\"'); sb.append(':'); sb.append(tojson(value)); sb.append(','); } // 将最后的 ',' 变为 '}': sb.setcharat(sb.length() - 1, '}'); return sb.tostring(); } }
以上就是小编为大家带来的json 自定义使用函数的简单实例全部内容了,希望大家多多支持~
上一篇: 修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
下一篇: Android开始开发遗漏的点 博客分类: Android初步 android项目分析;各种包作用;android初步
推荐阅读
-
Json 自定义使用函数的简单实例
-
Java设计模式编程中简单工厂与抽象工厂模式的使用实例
-
java 使用JDBC构建简单的数据访问层实例详解
-
Java设计模式编程中简单工厂与抽象工厂模式的使用实例
-
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
-
JavaWeb开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
-
Android实现可使用自定义透明Dialog样式的Activity完整实例
-
Android使用vcard文件的方法简单实例
-
Android实现可使用自定义透明Dialog样式的Activity完整实例
-
PHP中功能强大却很少使用的函数实例小结