- 浏览: 181933 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
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 381需要从房间配置表、房 ... -
Tomcat 主机部署
2014-12-01 11:55 1042tomcat安装完成后,修改以下文件: 安装目录下(以C盘为 ... -
javascript 操作Excel
2013-07-24 08:34 6491创建 var XLObj = new ActiveXObj ... -
tomcat7部署应用
2013-04-28 17:09 3441今日需要部署web应用测试wifi portal页面,使用to ... -
JQuery使我想起了当年写asp的岁月!
2010-03-04 13:42 665最近没事看了看现在的框架技术,随着struts、webwork ... -
《Java敏捷开发——使用Spring、Hibernate和Eclipse》选择最适合的去做!
2007-05-12 12:33 1632好久没 ... -
Tomcat6下的应用部署
2007-02-13 16:21 6646Cont ... -
spring + hibernate3.0.5 的批量删除解决方案
2006-07-17 16:13 3178public class HibernateDaoSuppor ... -
spring+hibernate3.0.5 的HQL中文搜索解决方法
2006-07-17 16:10 1567/** 获取某人在某时间段内的访问记录 */ publ ... -
Eclipse3.1 + Hibernate3.0.5 + HibernateSynchronizer3.1.9...
2006-06-12 09:06 1248启动Eclipse时加入参数: -clean 例如: ... -
配置Eclipse的Hibernate3.0开发环境
2005-06-29 00:13 3581使用一下工具: 1)eclip ... -
WebWork2 的 Validation
2005-05-24 11:21 1220在WebWork2包的文档中有一段关于验证器的内容,并举出了一 ... -
applicationContext.xml 一个代理注入多个?
2005-05-23 11:28 2230<?xml version="1.0" ... -
Eclipse3M7+Hibernate2+Spring1.2 环境测试
2005-05-23 10:06 1006package springWebwork2; impor ... -
Eclipse3M7+Hibernate2 运行环境测试
2005-05-23 10:01 1214package springWebwork2; import ... -
Eclipse3M7+Hibernate2+Spring1.2+Postgre8.0 工程引入文件
2005-05-23 09:54 1258postgresql-8.0.309.jdbc3.jar co ... -
测试SessionFactory失败(解决方案)
2005-05-21 09:08 1187引用 http://www.javaworld.com ... -
测试SessionFactory失败!
2005-05-20 16:33 1672package springWebwork2; import ...
相关推荐
最后,`DataJson`这个文件可能包含了示例的Json数据,可能是接口返回的样本,或者是用于测试接口的输入数据。分析这个文件可以帮助我们更好地理解接口的输出格式和预期行为。 总结来说,"SSH封装接口返回Json数据...
Java Bean则是一种符合Java编程规范的类,通常用于封装数据。下面我们将详细介绍这个过程,并探讨如何通过代码实现这一转换。 首先,我们需要了解Java Bean的基本结构。一个Java Bean通常包含私有属性、对应的...
总的来说,这个Java程序是一个典型的文本处理应用,涉及到JSON解析、文件操作、格式转换等多个技术领域,展示了Java在处理数据转换任务上的强大能力。通过理解这些知识点,我们可以更好地理解和使用这样的工具,或者...
在"JSON-RPC for Java使用说明.doc"文档中,你可能会找到关于如何设置和配置这些库的详细步骤,包括如何创建服务接口、如何启动服务器、如何创建客户端以及如何进行测试。此外,文档可能还会涵盖错误处理、异步调用...
对于封装逻辑,编写单元测试是非常重要的,确保无论数据如何变化,都能正确地映射到JavaBean中。JUnit、Mockito等工具可以帮助进行测试。 总结,表单数据自动封装到JavaBean涉及到多个层面的技术,包括Web框架的...
在标题中提到的"对json格式的数据进行封装和转化",这是一个关键的Web开发技能,涉及到如何将Java对象转化为JSON字符串,以便于在网络中传输。在Java中,我们通常会使用如Jackson或Gson这样的库来完成这个任务。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于封装数据。这篇文章将深入探讨如何通过源码和工具实现这一转换过程。 首先,我们需要理解JSON对象的...
在这个"java REST接口测试 测试小例子"中,我们将探讨如何在Java环境下进行REST接口的调用以及测试。 首先,`Test.java`文件很可能是包含测试代码的主类。在Java中,我们通常使用JUnit框架进行单元测试,不过这个...
本文档主要讨论了如何将Java对象封装为JSON的List数据,以及如何将JSON解析为包含对象的List。以下是对这个方案的详细说明: 1. **JSON对象与List的封装**: - 首先,我们需要创建一个工具类`ListToJSONArray`,该...
- 文档数据库:MongoDB以JSON格式(BSON)存储数据,这种格式易于理解和处理,特别适合于Web应用程序。 2. **Java MongoDB驱动**: - MongoDB官方提供了Java驱动程序,它允许Java开发者通过JDBC-like API与...
总结来说,"java fusionChart属性封装"涉及到的关键点有:1) 创建Java类封装FusionCharts的属性,2) 实现方法生成FusionCharts的JavaScript代码,3) 处理动态属性和数据源,4) 可能包含的示例代码或数据文件的解析与...
**json.txt**可能包含了一些示例或测试的JSON数据,供开发者参考或测试JSON序列化和反序列化功能。 这个工具集成了Struts2的AJAX支持,JavaScript的前端交互以及Java的后端处理,为开发者提供了一个快速开发的环境...
在Java开发环境中,解析这种协议通常涉及到网络通信、数据编码与解码、XML或JSON处理等多个技术领域。下面将详细探讨相关知识点。 1. **hj212协议**:全称为《污染源在线自动监控(监测)系统数据传输标准》,是...
JavaBean通常用于封装数据,在本案例中,我们将使用JavaBean作为数据模型。 #### 四、核心实现代码解析 根据提供的部分代码,我们可以看到两个主要类:`ObjectToJson` 和 `Test`。 ##### 4.1 `ObjectToJson` 类...
"Json-jar包"是一个专门用于学习和处理JSON的Java库,它被封装在一个JAR(Java Archive)文件中。JAR文件是Java平台的标准归档格式,它可以包含多个类文件、资源文件以及元数据,方便开发者打包、分发和运行Java应用...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯,包括C、C++、C#、Java、JavaScript、Perl、Python等。JSON易于人阅读和编写,...
- **自己基类的编写**:可自定义基类以封装公共逻辑或增强安全性,所有AJAX服务Java类应继承此基类。 - **AJAX服务Java类的注册**:通过配置或代码方式注册服务类,使其可供JavaScript调用。 - **JSP中的使用**:在...
- **数据序列化与反序列化**:JAX-RS支持多种数据格式如JSON和XML,可以通过`@Produces`和`@Consumes`注解指定。 - **依赖注入**:利用CDI(Context and Dependency Injection)或Jersey的注入机制,方便地管理...
我们只要导入这个包就可以很简单地解析和封装JSON数据。 2.2 Json-lib Json-lib可以将Java对象转换为JSON格式的字符串,也可以将Java对象转换为XML格式的文档,同样可以将JSON字符串转换为Java对象或是将XML字符串...
在Java自动化领域,数据文件的读取和对象的封装是两个关键的概念,它们在构建自动化框架项目中扮演着重要角色。本项目旨在教你如何利用Java技术实现这一目标,特别是针对第二天的学习内容——从数据文件中读取信息并...