- 浏览: 213500 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
q10000000:
你好 适用madMadia点击上传到服务器 没有反应啊LZ
在项目中整合FCKeditor文本编辑器 -
liweixxxx1990:
spring本版是3.0的(和版本也有关系吗?) 配置用到了s ...
struts2+spring发送mail -
floger:
liweixxxx1990 写道我照着你这个写的出现了下面的错 ...
struts2+spring发送mail -
liweixxxx1990:
我照着你这个写的出现了下面的错误,怎么解决啊??:Messag ...
struts2+spring发送mail -
jueyue:
不错,把问题解决了
Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决
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格式 遵循JSON组织公布标准 * * @date 2008/05/07 * @version 1.0.0 */ public class Json { /** Commons Logging instance. */ private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Json.class); /** * @param obj 任意对象 * @return String */ 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(); } /** * @param bean bean对象 * @return String */ 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(); } /** * @param list list对象 * @return String */ 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(); } /** * @param array 对象数组 * @return String */ 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(); } /** * @param map map对象 * @return String */ 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(); } /** * @param set 集合对象 * @return String */ 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(); } /** * @param s 参数 * @return String */ 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(); } }文章出自:http://blog.csdn.net/Alibert/archive/2008/08/31/2855114.aspx
发表评论
-
程序员:下一次面试前你需要准备的五个基本步骤
2010-10-08 10:41 1082看到此文,觉得太好了。polaris不敢独享,拿出来与大家 ... -
Web 设计与开发终极资源大全(下)(自己保存)
2010-03-19 14:50 903Web 技术突飞猛进,Web 设计与开发者们可以选择的工 ... -
Web 设计与开发终极资源大全(上)(自己保存)
2010-03-19 14:49 1087Web 技术突飞猛进,Web ... -
url加密参数 (java版)
2010-01-21 15:58 1158转自:http://hi.baidu.com/31613378 ... -
误删资料恢复
2010-01-21 15:30 949转自:http://hi.baidu.com/annleecn ... -
设计 REST 风格的 MVC 框架
2010-01-08 08:32 796级别: 中级 廖 雪峰, ... -
Tomcat配置技巧Top 10
2010-01-08 08:31 759004-01-09 17:19:25 作者:Jason ... -
开发人员一定要加入收藏夹的网站
2009-09-04 08:29 756http://www.gotapi.com/ 语言 ... -
JAVA文件操作大全
2009-08-31 08:09 9891.创建文件夹 File myFolderPa ... -
关于正则表达式的
2009-08-15 09:49 742"^\d+$" //非负整数(正整 ... -
Java应用程序常见异常类解析
2009-08-06 08:49 934异常跟普通的警告等有 ... -
jsp页面中产生随机汉字验证
2009-07-09 11:33 863<%@page contentType="im ... -
J2EE For Weblogic开发中Weblogic.xml文件的配置 (转)
2009-07-03 11:29 1561weblogic Server允许通过设置weblogic应用 ... -
java中定时任务执行
2009-07-03 11:26 3054关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然 ... -
java 定时备份数据库
2009-06-22 09:38 2172java 定时备份数据库 首先我们要先写一个备份类 Bac ... -
myecplise的破解器的源代码
2009-06-16 14:11 947import java.io.BufferedReader ... -
工作流入门
2009-03-20 12:09 895工作流无疑是一个热门 ... -
在项目中整合FCKeditor文本编辑器
2009-03-19 14:15 1616(1) 先到http://www.fckeditor. ... -
为什么我的电脑打不开Myeclipse的官网
2009-03-13 08:20 1344以前没有注意过,这两天我打算用一下myeclipse7.0m2 ... -
答复: String 中的split()
2009-03-10 10:33 782[quote="longzhu007"]一 ...
相关推荐
反序列化是将JSON格式的字符串转换为程序可直接使用的对象的过程,这对于处理网络请求返回的数据至关重要。在本篇文章中,我们将深入探讨JSON反序列化的概念、原因以及在实际开发中的应用。 一、什么是JSON反序列化...
2. 错误处理:在序列化和反序列化过程中,应检查可能的错误,例如无效的JSON格式、字段缺失等,并妥善处理。 3. 性能优化:在处理大量数据时,可以考虑使用流式API或批量操作来提高效率。 4. JSON格式控制:某些库...
"关于XML、JSON的序列化、反序列化对象或集合" XML和JSON是当前最广泛使用的数据交换格式,它们的序列化和反序列化是软件开发中的常见需求。本文将详细介绍XML和JSON的序列化和反序列化对象或集合的实现方法。 XML...
序列化是将数据结构或对象转换为可传输或存储的格式的过程。在Delphi中,我们可以使用TJSONObject和TJSONValue类将Delphi的对象或记录转换为JSON字符串。以下是一个简单的示例: ```delphi uses System.JSON; ...
Vbs序列化/反序列化Json基类 可直接使用,bug已被我修复 Example: Dim fso, json, str, o, i Set json = New VbsJson Set fso = WScript.CreateObject("Scripting.Filesystemobject") str = fso.OpenTextFile(...
2. 数据序列化:序列化是将对象转换为可传输或存储的格式,对于JSON,这意味着将JavaScript对象转换为JSON字符串。在JavaScript中,我们可以使用`JSON.stringify()`方法实现这一过程。例如: ```javascript let obj ...
字符串是用双引号包围的Unicode字符集合,而日期时间在JSON中通常会被序列化成特殊的格式,比如“/Date(700000+0500)/”。 ***提供了多种机制来实现JSON的序列化和反序列化。最基本的是使用`...
在C#中,处理JSON格式的序列化和反序列化是开发过程中的常见任务,这涉及到将C#对象转换为JSON字符串,以及将JSON字符串还原为C#对象。本文将详细介绍C#中几种常用的JSON处理方法。 一、Newtonsoft.Json库(Json...
在C#编程中,反序列化是将JSON字符串转换为等效的C#对象的过程,这对于处理从服务器接收到的数据或者保存在文件中的JSON格式数据非常有用。 在C#中,我们可以使用多种库进行JSON反序列化,其中最流行的是 ...
极好的序列化与发序列化代码。可以处理array集合,数组或者单个对象等的序列化与反序列化。
1. 序列化对象到JSON字符串: ```csharp using System.Json; // 定义一个简单的对象 public class Person { public string Name { get; set; } public int Age { get; set; } } // 创建一个Person实例 Person ...
`JsonSerializer`通常是基于JSON.NET库(现在已被.NET Core和.NET Framework集成),它提供了一种高效、简洁的方式来序列化和反序列化对象为JSON格式,JSON广泛用于Web服务和API之间的数据传递。 压缩包中的...
Json.NET是最常用且功能强大的JSON库,提供了丰富的API用于序列化和反序列化对象。序列化是将对象转换为JSON字符串的过程,而反序列化则是将JSON字符串转换回对象。 - **序列化**: 使用`JsonConvert....
序列化是将数据对象转化为JSON格式的过程,以便在网络上传输或保存到文件中。不同的编程语言提供了不同的库来支持JSON序列化。例如,在Python中,可以使用`json`模块的`dumps()`函数来实现: ```python import json...
JSON序列化的优势在于其可读性,并且许多现代Web服务都支持JSON格式。然而,二进制序列化通常更节省空间和时间,但不那么直观。 总结,理解并熟练运用C#中的二进制数组转换和序列化技术对于提升开发效率和代码质量...
比如下面的JS对象 var user=new Object(); user.name='吕洞宾'; user.friends=[{name:"铁拐李",sex:"男",friend:user},{name:"何仙姑",sex:"女",friend:user}]; 一般的解析工具都会出错 详细信息请参观 ...
序列化是指将JSON对象转换为字符串的过程,以便在网络上传输或保存到文件中;反序列化则是将JSON字符串转换回对象的过程。 描述中提到的“亲测可使用notepad++ json格式化插件”,意味着已经有人验证过在Notepad++...
C#作为.NET框架的一部分,提供了内置支持JSON序列化和反序列化的工具,使得对象和JSON字符串之间的转换变得简单易行。在本项目中,我们将深入探讨如何使用C#进行JSON的正反序列化。 在C#中,`System.Text.Json`命名...
在Delphi编程环境中,处理JSON数据通常涉及到序列化和反序列化操作,即将对象转换为JSON字符串,以及将JSON字符串解析回对象。本文将深入探讨如何在Delphi中进行JSON序列化与反序列化,特别是涉及List类型的数据。 ...
1. JSON序列化:序列化是指将Java对象转换为JSON字符串的过程,使得数据可以被存储或通过网络传输。这样做的好处是,JSON格式的数据可以在多种语言之间进行互操作,并且易于理解和处理。 2. JSON反序列化:反序列化...