常用的java类型转json的转换类
公司不准引入json-lib-2.x.jar所以只好自己写了一个基本类型的object转json的类,然后支持8种基本类型和javabean,list,map,array,使用putJSON方法,key值随便写,value是要转换的对象。
JsonObjectConvert.java:
package com.pz.util; import java.lang.reflect.Field;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; public class JsonObjectConvert { private StringBuffer sf = null; public String SimpleObjectToJson(Object o){ sf = new StringBuffer("{"); //sf.append(o.getClass().getSimpleName());
Field field[] = o.getClass().getDeclaredFields();
String content = "";
for(Field f : field ){
try {
f.setAccessible(true);
content += "\"" + f.getName() + "\":\"" + convertNull(f.get(o)) +"\",";
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
sf.append(content);
return sf.toString().substring(0, sf.length() - 1) + "}";
}
public Object convertNull(Object o){
if(o == null){
return "";
}else {
return o;
}
}
@SuppressWarnings("unchecked")
public Object convertJSON(Object o){
if(o == null){
return "";
}else if(o instanceof Boolean){
return "\"" +o.toString() + "\"";
}else if(o instanceof Character){
return "\"" +o.toString() + "\"";
}else if(o instanceof Short){
return "\"" +o.toString() + "\"";
}else if(o instanceof Integer){
return "\"" +o.toString() + "\"";
}else if(o instanceof Long){
return "\"" +o.toString() + "\"";
}else if(o instanceof Float){
return "\"" +o.toString() + "\"";
}else if(o instanceof Double){
return "\"" +o.toString() + "\"";
}else if(o instanceof Byte){
return "\"" +o.toString() + "\"";
}else if(o instanceof List){
return listToJSON((List)o);
}else if(o instanceof Map){
return mapToJSON((Map)o);
}else if(o.getClass().isArray()){
return arrayToJSON(o);
}else if(o instanceof String){
return "\"" +o.toString() + "\"";
}else if(o instanceof Date){
return "\"" +o.toString() + "\"";
}
return SimpleObjectToJson(o);
}
@SuppressWarnings("unchecked")
public String listToJSON(List list){
sf = new StringBuffer("[");
for(int i = 0;i < list.size();i++){
sf.append( convertJSON(list.get(i)) + ",");
}
return sf.toString().substring(0,sf.toString().length() - 1) + "]";
}
@SuppressWarnings("unchecked")
public String mapToJSON(Map map){
sf = new StringBuffer("[");
Iterator ite = map.entrySet().iterator();
while(ite.hasNext()){
Entry o = (Entry)ite.next();
String key = convertJSON(o.getKey()).toString();
sf.append("{\"" + key.substring(1, key.length() - 1) + "\":");
sf.append(convertJSON(o.getValue()) +"},");
}
return sf.toString().substring(0,sf.toString().length() - 1) + "]";
}
public String arrayToJSON(Object o){
sf = new StringBuffer("[");
Object[] obj = (Object[])o;
for(int i = 0;i < obj.length;i++){
sf.append(convertJSON(obj[i]) + ",");
}
return sf.toString().substring(0, sf.toString().length() - 1) + "]";
}
//the sum method convert to json key --> value
public static String putJSON(String key,Object value){
JsonObjectConvert joc = new JsonObjectConvert();
String jsonString = "{\"" + key + "\":" + joc.convertJSON(value) + "}";
return jsonString;
}
}
package com.pz.util;
import java.lang.reflect.Field;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;
public class JsonObjectConvert {private StringBuffer sf = null;public String SimpleObjectToJson(Object o){sf = new StringBuffer("{");//sf.append(o.getClass().getSimpleName());Field field[] = o.getClass().getDeclaredFields();String content = "";for(Field f : field ){try {f.setAccessible(true);content += "\"" + f.getName() + "\":\"" + convertNull(f.get(o)) +"\",";} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}sf.append(content);return sf.toString().substring(0, sf.length() - 1) + "}";}public Object convertNull(Object o){if(o == null){return "";}else {return o;}}@SuppressWarnings("unchecked")public Object convertJSON(Object o){if(o == null){return "";}else if(o instanceof Boolean){return "\"" +o.toString() + "\"";}else if(o instanceof Character){return "\"" +o.toString() + "\"";}else if(o instanceof Short){return "\"" +o.toString() + "\"";}else if(o instanceof Integer){return "\"" +o.toString() + "\"";}else if(o instanceof Long){return "\"" +o.toString() + "\"";}else if(o instanceof Float){return "\"" +o.toString() + "\"";}else if(o instanceof Double){return "\"" +o.toString() + "\"";}else if(o instanceof Byte){return "\"" +o.toString() + "\"";}else if(o instanceof List){return listToJSON((List)o);}else if(o instanceof Map){return mapToJSON((Map)o);}else if(o.getClass().isArray()){return arrayToJSON(o);}else if(o instanceof String){return "\"" +o.toString() + "\"";}else if(o instanceof Date){return "\"" +o.toString() + "\"";}return SimpleObjectToJson(o);}@SuppressWarnings("unchecked")public String listToJSON(List list){sf = new StringBuffer("[");for(int i = 0;i < list.size();i++){sf.append( convertJSON(list.get(i)) + ",");}return sf.toString().substring(0,sf.toString().length() - 1) + "]";}@SuppressWarnings("unchecked")public String mapToJSON(Map map){sf = new StringBuffer("[");Iterator ite = map.entrySet().iterator();while(ite.hasNext()){Entry o = (Entry)ite.next();String key = convertJSON(o.getKey()).toString();sf.append("{\"" + key.substring(1, key.length() - 1) + "\":");sf.append(convertJSON(o.getValue()) +"},");}return sf.toString().substring(0,sf.toString().length() - 1) + "]";}public String arrayToJSON(Object o){sf = new StringBuffer("[");Object[] obj = (Object[])o;for(int i = 0;i < obj.length;i++){sf.append(convertJSON(obj[i]) + ",");}return sf.toString().substring(0, sf.toString().length() - 1) + "]";}//the sum method convert to json key --> valuepublic static String putJSON(String key,Object value){JsonObjectConvert joc = new JsonObjectConvert();String jsonString = "{\"" + key + "\":" + joc.convertJSON(value) + "}"; return jsonString;}}
常用的java类型转json的转换类的更多相关文章
- JAVA 接口返回JSON格式转换类
使用了Lombok插件 Result.java package com.utils; import com.jetsum.business.common.constant.Constant; impo ...
- 转换成json字符串,与json字符串转换成java类型都要先转换成json对象
转换成json字符串,与json字符串转换成java类型都要先转换成json对象
- GSON中Java对象与JSON互相转换——(一)
json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串. 常用的json转换工具有如下几种: 1)jsonlib 2)Gson:google 3)fastjson:阿 ...
- Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)
首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐 ...
- Json:Java对象和Json文本转换工具类
Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd ...
- 将String类型的json字符串转换成java对象
1,import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); Mycl ...
- java 类型转json格式
json-lib-2.4-jdk15.jar List<People> mapPersonTypes = null; private JSONArray json_mapPersonTyp ...
- Mybatis 中常用的java类型与jdbc类型
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIM ...
- Java 类型信息 —— 获取泛型类型的类对象(.class)
How to get a class instance of generics type T 考虑泛型类Foo<T>,在其成员中,如果想获取类型(type)T的类实例(class inst ...
随机推荐
- Oracle sql语句练习
--1.选择在部门 30 中员工的所有信息 ; --2.列出职位为(MANAGER)的员工的编号,姓名 select EMPNO, ENAME from emp where job='MANAGER' ...
- [转]Android开发:Parallax效果的ScrollerView,改编自ParallaxListView
https://github.com/nirhart/ParallaxScroll这个gethub上的地址 本文转自http://www.2cto.com/kf/201502/376970.html ...
- Python学习之路--select解析
sellect.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后, ...
- Android中Button、ImageButton、ImageView背景设置区别
Button与ImageButton实际两者无关,Button继承自TextView,不支持src;ImageButton继承自ImageView.同一张图片在不设置大小,默认显示时,使用Button ...
- 为什么学习webdriver
http://www.boobooke.com/goods-37.html
- 【整理】--【字符设备】cdev_init()/cdev_alloc(),cdev_add(),cdev_del()
(1) 内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject ...
- DOJO-dojox.grid.EnhancedGrid(带刷新函数,分页工具栏,复选框,行号等功能)
转自:http://biancheng.dnbcw.info/javascript/395865.html dojo.require("dojox.grid.EnhancedGrid&quo ...
- WebLogic 8.1 部署问题记录
1.weblogic 8.1 不支持jdk1.4以上的版本,所以,如果在项目中用jdk1.4以上的版本编译之后的class直接部署到weblogic8.1 服务器上会报错,报错信息一般包括如下: Cl ...
- Mac OS X 10.9.3 UI 设置界面无法设置时区解决
10.9.3 在选项设置里无法设置时区,表现为选择时区的点的位置后无法保存,导致系统时间错乱,解决方法是用终端设置: sudo systemsetup -gettimezone sudo system ...
- kali 在线教学群 第一次 公开课 小结(1)
kali 在线教学群 第一次 公开课 小结(1) 文/玄魂 1.1 需要准备的基础环境 vmware 虚拟机,kali 2.0 镜像,科学上网工具包.这三项内容,可以在本人的微信订阅号“xuanhun ...