import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* json转换Utils
* @author
*
*/
public class JsonUtils {
/**
* 字符串转换
* @param s
* @return
*/
public static String stringToJson(String s) {
if (s == null) {
return nullToJson();
}
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 String nullToJson() {
return "";
}
public static String objectToJson(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\"");
} else if (obj instanceof Number) {
json.append(numberToJson((Number) obj));
} else if (obj instanceof Boolean) {
json.append(booleanToJson((Boolean) obj));
} else if (obj instanceof String) {
json.append("\"").append(stringToJson(obj.toString())).append("\"");
} else if (obj instanceof Object[]) {
json.append(arrayToJson((Object[]) obj));
} else if (obj instanceof List) {
json.append(listToJson((List<?>) obj));
} else if (obj instanceof Map) {
json.append(mapToJson((Map<?, ?>) obj));
} else if (obj instanceof Set) {
json.append(setToJson((Set<?>) obj));
} else {
json.append(beanToJson(obj));
}
return json.toString();
}
public static String numberToJson(Number number) {
return number.toString();
}
public static String booleanToJson(Boolean bool) {
return bool.toString();
}
/**
* @param bean
* bean对象
* @return String
*/
public static String beanToJson(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 = objectToJson(props[i].getName());
String value = objectToJson(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 listToJson(List<?> list) {
StringBuilder json = new StringBuilder();
json.append("[");
if (list != null && list.size() > 0) {
for (Object obj : list) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* @param array
* 对象数组
* @return String
*/
public static String arrayToJson(Object[] array) {
StringBuilder json = new StringBuilder();
json.append("[");
if (array != null && array.length > 0) {
for (Object obj : array) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* @param map
* map对象
* @return String
*/
public static String mapToJson(Map<?, ?> map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(objectToJson(key));
json.append(":");
json.append(objectToJson(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
/**
* @param set
* 集合对象
* @return String
*/
public static String setToJson(Set<?> set) {
StringBuilder json = new StringBuilder();
json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
}
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* json转换Utils
* @author
*
*/
public class JsonUtils {
/**
* 字符串转换
* @param s
* @return
*/
public static String stringToJson(String s) {
if (s == null) {
return nullToJson();
}
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 String nullToJson() {
return "";
}
public static String objectToJson(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\"");
} else if (obj instanceof Number) {
json.append(numberToJson((Number) obj));
} else if (obj instanceof Boolean) {
json.append(booleanToJson((Boolean) obj));
} else if (obj instanceof String) {
json.append("\"").append(stringToJson(obj.toString())).append("\"");
} else if (obj instanceof Object[]) {
json.append(arrayToJson((Object[]) obj));
} else if (obj instanceof List) {
json.append(listToJson((List<?>) obj));
} else if (obj instanceof Map) {
json.append(mapToJson((Map<?, ?>) obj));
} else if (obj instanceof Set) {
json.append(setToJson((Set<?>) obj));
} else {
json.append(beanToJson(obj));
}
return json.toString();
}
public static String numberToJson(Number number) {
return number.toString();
}
public static String booleanToJson(Boolean bool) {
return bool.toString();
}
/**
* @param bean
* bean对象
* @return String
*/
public static String beanToJson(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 = objectToJson(props[i].getName());
String value = objectToJson(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 listToJson(List<?> list) {
StringBuilder json = new StringBuilder();
json.append("[");
if (list != null && list.size() > 0) {
for (Object obj : list) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* @param array
* 对象数组
* @return String
*/
public static String arrayToJson(Object[] array) {
StringBuilder json = new StringBuilder();
json.append("[");
if (array != null && array.length > 0) {
for (Object obj : array) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* @param map
* map对象
* @return String
*/
public static String mapToJson(Map<?, ?> map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(objectToJson(key));
json.append(":");
json.append(objectToJson(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
/**
* @param set
* 集合对象
* @return String
*/
public static String setToJson(Set<?> set) {
StringBuilder json = new StringBuilder();
json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
}
发表评论
-
Http post请求
2017-08-23 10:14 838package com.java.util; import ... -
Properties 文件读取
2017-08-23 09:52 497package com.java.util; import ... -
Build模式练习
2017-08-02 15:06 470/** * Build模式练习 * @author Adm ... -
java基础知识
2016-08-25 16:26 436一、Redis和Memcache的区别 ... -
java常用Utils整理
2016-08-25 16:25 1604package com.service_im.spoon.ut ... -
Java获取当前时间并转化成字符串
2012-11-15 18:08 3307package com.happy.sqlite.test; ... -
对于特殊字符保存到数据库后再读出原样输出到页面
2012-08-29 18:25 975/** *如<a href="http: ... -
struts2-excel文件的读取
2012-07-03 19:34 823页面: <input type="file&q ... -
struts2文档上传与下载
2012-07-03 19:21 656页面(freemark页面): <input type ... -
heibernate多对多表的处理
2012-06-21 10:56 1100老师Teacher 与 课程Course 是一个多对多的关系, ... -
树列表遍历
2012-06-18 21:32 655//方法如下: public static void main ... -
列表项左右移动
2012-06-02 22:58 750<!doctype html public " ... -
JAVA修饰符类型解释
2012-03-12 19:39 791public的类、类属变量及方法,包内及包外的任何类均可以访问 ... -
简单常用方法接口_2
2012-02-16 16:06 648第三步,定义具体dao接口 package dao; imp ... -
log4j的应用实例
2012-02-09 17:00 732第一步,要项目的src下面建一个log4j.propertie ... -
简单常用方法接口_1
2011-02-08 02:38 654第一步,写泛型 package d ...
相关推荐
java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...
标题中的“Json 转换工具类”指的是`Newtonsoft.Json`库中的关键类和方法,它们提供了强大的JSON操作功能。这个工具类使得开发者能够方便地将JSON字符串与.NET对象之间进行转换,极大地方便了数据的处理和交换。 ...
json转换工具类,可以转换很多格式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...
jackson-all json转换工具类,改类提供了各种格式对应json的转换。 可以方便的用于需要通过json传输的系统架构。
本篇将详细介绍如何使用Java工具类进行XML与JSON的转换,并介绍相关知识。 首先,`pom依赖.txt`文件中应包含的是Maven项目的依赖信息。在Java项目中,我们需要引入处理XML和JSON转换的库。通常,我们使用如Jackson...
在Java开发中,处理JSON数据时,经常会用到JSON转换工具类,如本例中的`JsonUtils`。 `JsonUtils`类主要提供了三个核心方法,用于实现Java对象与JSON字符串之间的相互转换: 1. `objectToJson(Object data)`:此...
挺好用的一个JSON转换工具包,含Java端与JavaScript端的JSON对象转换工具类,使用时直接导入至项目源文件中并调用相关类及方法即可。此文件为JavaScript端使用,如需Java端的请移步我的另一上传资源“JSON对象转换...
本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
json与xml互相转换工具类
本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...
`JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`ezmorph`的封装,提供了简洁易用的API供开发者进行JSON操作。可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`...
JSON转换工具通常包含以下功能: 1. **解析JSON**: 工具首先需要解析JSON文本,将其转化为内存中的数据结构。这涉及到验证JSON语法的正确性,如正确的大括号匹配、引号使用等。 2. **编组数据**: 将解析后的JSON...
JSON转换工具主要用于将JSON格式的数据转换为其他格式,或者将其他格式的数据转换成JSON,以适应不同的数据交互需求。 在你提供的压缩包文件中,包含了一些Java库,这些库是用于处理JSON转换和其他相关操作的。下面...
在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...