- 浏览: 176034 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
Cash:
今日测试微信服务器,搭建tomcat8.0.9时,发布的ser ...
Tomcat 主机部署 -
Cash:
追加网通ip段:在网上没有公布出来222.128.0.0 25 ...
双ISP出口用到的ip地址表
借鉴了一下网上一位开发者写大打包类,这个类实用了1.5的泛行特性。并测试一下实际的输出
package im_testing;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.LinkedList;
import java.util.TreeSet;
public class JsonUtil {
//private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(JsonUtil.class);
public static String object2json(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\""); //对象为null 输出 "" 到 Json
} 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("\""); //对象为字符串、字符、数字等 将内容两端加 "" 输出到 Json
} 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();
}
//Bean 字符化 {"ID":"023945","WC":"1","hall":"1","room":"2"}
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) {}
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
//list 字符化 ["123","456"]
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();
}
//对象数组 [{"ID":"023945","WC":"1","hall":"1","room":"2"},{"ID":"082384","WC":"1","hall":"2","room":"3"}]
//适合内容列表,封装为bean发送到JQuery
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
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();
}
//set
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("]");
}
return json.toString();
}
//字符串
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();
}
public static void main(String arg[]){
String a = "abc\ndefg\"";
System.out.println("String " + JsonUtil.object2json(a));
List l = new LinkedList();
l.add("123");l.add("456");
System.out.println("List " + JsonUtil.object2json(l));
Map m = new HashMap();
m.put("a", "a-123");m.put("b", "b-456");
System.out.println("Map " + JsonUtil.object2json(m));
Set s = new TreeSet();
s.add("789");s.add("123");s.add("456");
System.out.println("Set " + JsonUtil.object2json(s));
House h1 = new House();
House h2 = new House();
h2.setHall(2);h2.setID("082384");h2.setRoom(3);h2.setWC(1);
System.out.println("House1 " + JsonUtil.bean2json(h1));
System.out.println("House2 " + JsonUtil.bean2json(h2));
BigInteger bi = new BigInteger("12345678");
System.out.println("BigInteger " + JsonUtil.object2json(bi));
Object[] o = {h1,h2};
System.out.println("{h1,h2} " + JsonUtil.object2json(o));
}
}
以下是输出:
String "abc\ndefg\""
List ["123","456"]
Map {"b":"b-456","a":"a-123"}
Set ["123","456","789"]
House1 {"ID":"023945","WC":"1","hall":"1","room":"2"}
House2 {"ID":"082384","WC":"1","hall":"2","room":"3"}
BigInteger"12345678"
{h1,h2} [{"ID":"023945","WC":"1","hall":"1","room":"2"},{"ID":"082384","WC":"1","hall":"2","room":"3"}]
发表评论
-
MYSQL外联结查询解决注册数据统计
2016-10-10 10:32 346需要从房间配置表、房 ... -
Tomcat 主机部署
2014-12-01 11:55 996tomcat安装完成后,修改以下文件: 安装目录下(以C盘为 ... -
javascript 操作Excel
2013-07-24 08:34 5921创建 var XLObj = new ActiveXObj ... -
tomcat7部署应用
2013-04-28 17:09 3404今日需要部署web应用测试wifi portal页面,使用to ... -
JQuery使我想起了当年写asp的岁月!
2010-03-04 13:42 631最近没事看了看现在的框架技术,随着struts、webwork ... -
《Java敏捷开发——使用Spring、Hibernate和Eclipse》选择最适合的去做!
2007-05-12 12:33 1588好久没 ... -
Tomcat6下的应用部署
2007-02-13 16:21 6607Cont ... -
spring + hibernate3.0.5 的批量删除解决方案
2006-07-17 16:13 3146public class HibernateDaoSuppor ... -
spring+hibernate3.0.5 的HQL中文搜索解决方法
2006-07-17 16:10 1536/** 获取某人在某时间段内的访问记录 */ publ ... -
Eclipse3.1 + Hibernate3.0.5 + HibernateSynchronizer3.1.9...
2006-06-12 09:06 1175启动Eclipse时加入参数: -clean 例如: ... -
配置Eclipse的Hibernate3.0开发环境
2005-06-29 00:13 3537使用一下工具: 1)eclip ... -
WebWork2 的 Validation
2005-05-24 11:21 1167在WebWork2包的文档中有一段关于验证器的内容,并举出了一 ... -
applicationContext.xml 一个代理注入多个?
2005-05-23 11:28 2166<?xml version="1.0" ... -
Eclipse3M7+Hibernate2+Spring1.2 环境测试
2005-05-23 10:06 971package springWebwork2; impor ... -
Eclipse3M7+Hibernate2 运行环境测试
2005-05-23 10:01 1158package springWebwork2; import ... -
Eclipse3M7+Hibernate2+Spring1.2+Postgre8.0 工程引入文件
2005-05-23 09:54 1222postgresql-8.0.309.jdbc3.jar co ... -
测试SessionFactory失败(解决方案)
2005-05-21 09:08 1114引用 http://www.javaworld.com ... -
测试SessionFactory失败!
2005-05-20 16:33 1623package springWebwork2; import ...
相关推荐
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
1、封装WeatherInfo实体类,对接口返回的结果进行映射的实体类 2、WeatherUtils类,负责调用第三方天气预报api接口处理的工具类,包括根据城市查询等,返回的格式是json 3、test类,对接口进行功能性测试
Java看的HTTP网络编程 网络通信编程实例 适用于Android网络编程 在测试代码中服务端我使用三种方式:S2SH 只用Struts2 Servlet 客户端就一种 只不过换个请求的URL 服务端和客户端交互使用了两种方式:XML JSON 目前...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
5)本demo可以直接运行 本来想测试protobuf进行数据处理的 要放在github上就改成json了(entity中有简单的xml解析:Menu.java 其他的都是json的 json 也可用Gson更方便) 博客链接使用说明:...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Java语言基础 算法基础、常用数据结构、企业编程规范。 掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。 Java面向对象 面向对象特性:封装、继承、多态等,面向对象程序设计,基础设计模式等。 掌握面向...