java bean、List、数组、map和Json的相互转化
工程
json包为 
代码
package com.my.json;
public class ChildBean {
private String childName;
private String childSex;
private int childAge;
public ChildBean()
{
}
public ChildBean(String childName, String childSex, int childAge) {
this.childName = childName;
this.childSex = childSex;
this.childAge = childAge;
}
public String getChildName() {
return childName;
}
public void setChildName(String childName) {
this.childName = childName;
}
public String getChildSex() {
return childSex;
}
public void setChildSex(String childSex) {
this.childSex = childSex;
}
public int getChildAge() {
return childAge;
}
public void setChildAge(int childAge) {
this.childAge = childAge;
}
@Override
public String toString() {
return "ChildBean [childName=" + childName + ", childSex=" + childSex + ", childAge=" + childAge + "]";
}
}
package com.my.json; import java.util.ArrayList;
import java.util.List; public class Person { private String name; private List<ChildBean> list = new ArrayList<ChildBean>(); private int num; private String sex; private int age; public Person() { } public Person(String name, int num, String sex, int age) {
super();
this.name = name;
this.num = num;
this.sex = sex;
this.age = age;
} public int getAge() {
return age;
} public String getName() {
return name;
} public int getNum() {
return num;
} public String getSex() {
return sex;
} public void setAge(int age) {
this.age = age;
} public void setName(String name) {
this.name = name;
} public void setNum(int num) {
this.num = num;
} public void setSex(String sex) {
this.sex = sex;
} public List<ChildBean> getList() {
return list;
} public void setList(List<ChildBean> list) {
this.list = list;
} @Override
public String toString() {
return "Person [name=" + name + ", num=" + num + ", sex=" + sex + ", age=" + age + ",list=" + list + "]";
} }
package com.my.json; import java.util.ArrayList;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig; public class JsonUtil { /**
* 简单类型:Json转化为bean
*
* @param jsonString
* @param pojoCalss
* @return
*/
public static Object jsonString2Object(String jsonString, Class pojoCalss) { JSONObject jsonObject = JSONObject.fromObject(jsonString); Object pojo = JSONObject.toBean(jsonObject, pojoCalss); return pojo; } /**
* 复杂类型:Json转化为bean<br>
* 用法示例:<br>
* Map<String, Class> classMap = new HashMap<String, Class>();
* classMap.put("list", ChildBean.class); //指定复杂类型属性的映射关系,可以使多个放到map中<br>
* Person person=(Person)JsonUtil.jsonString2Object(str2, Person.class,
* classMap);<br>
*
* @param jsonString
* @param pojoCalss
* @return
*/
public static Object jsonString2Object(String jsonString, Class pojoCalss, Map<String, Class> classMap) {
JSONObject jobj = JSONObject.fromObject(jsonString);
return JSONObject.toBean(jobj, pojoCalss, classMap);
} /**
* 简单|复杂类型:将java对象转换成json字符串<br>
* 支持复杂类型:Java bean 中既有属性又有list
*
* @param javaObj
* @return
*/
public static String object2JsonString(Object javaObj) { JSONObject json = JSONObject.fromObject(javaObj); return json.toString(); } /**
* 从json对象集合表达式中得到一个java对象列表
*
* @param jsonString
* @param pojoClass
* @return
*/
public static List jsonList2JavaList(String jsonString, Class pojoClass) { JSONArray jsonArray = JSONArray.fromObject(jsonString); JSONObject jsonObject; Object pojoValue; List list = new ArrayList(); for (int i = 0; i < jsonArray.size(); i++) { jsonObject = jsonArray.getJSONObject(i); pojoValue = JSONObject.toBean(jsonObject, pojoClass); list.add(pojoValue); } return list; } /**
* 从java对象集合表达式中得到一个json列表
*
* @param list
* @return
*/
public static String javaList2JsonList(List list) { JSONArray jsonArray = JSONArray.fromObject(list);
return jsonArray.toString();
} /**
* 数组转换为JSON
*
* @param array
* @return
*/
public static String javaArray2Json(Object[] array) {
JSONArray jsonarray = JSONArray.fromObject(array);
return jsonarray.toString();
} /**
* Json数组转化为Java数组
*
* @param jsonArray
* @param clas
* @return
*/
public static Object jsonArray2JavaArrray(String jsonArray, Class clas) {
JsonConfig jconfig = new JsonConfig();
jconfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);
jconfig.setRootClass(clas);
JSONArray jarr = JSONArray.fromObject(jsonArray);
return JSONSerializer.toJava(jarr, jconfig);
} /**
* Map转换成json
* @param map
* @return
*/
public static String javaMap2Json(Map<String, Object> map) {
return JSONObject.fromObject(map).toString();
} /**
* json转化为map
* @param jsonString
* @param pojoCalss
* @return
*/
public static Object javaMap2Json(String jsonString, Class pojoCalss) {
return jsonString2Object(jsonString, pojoCalss);//调用方法jsonString2Object
} }
package com.my.json; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class Test {
@SuppressWarnings("unchecked")
public static void main(String[] args) { // 普通bean转化Json
System.out.println("普通bean转化Json:");
ChildBean p = new ChildBean("wwwww", "boy", 23);
String str = JsonUtil.object2JsonString(p);
System.out.println(str); // 普通Json转化bean,如 {"childAge":23,"childName":"wwwww","childSex":"boy"}
System.out.println("普通Json转化bean:");
ChildBean c = (ChildBean) JsonUtil.jsonString2Object(str, ChildBean.class);
System.out.println(c); // Java List转化为Json
System.out.println("Java List转化为Json:");
List<ChildBean> list = new ArrayList<ChildBean>();
for (int i = 0; i < 5; i++) {
ChildBean childBean = new ChildBean("wwwww" + i, "boy", i);
list.add(childBean);
}
String jsonList = JsonUtil.javaList2JsonList(list);
System.out.println(jsonList); // json 列表转化为Java List
System.out.println("json 列表转化为Java List:");
List<ChildBean> l = (List<ChildBean>) JsonUtil.jsonList2JavaList(jsonList, ChildBean.class);
System.out.println(l); // 复杂bean转化为Json
System.out.println("复杂bean转化为Json:");
List<ChildBean> list2 = new ArrayList<ChildBean>();
for (int i = 0; i < 10; i++) {
ChildBean childBean = new ChildBean("aaaaaa" + i, "boy", i);
list2.add(childBean);
}
Person me = new Person("zhang", 1, "man", 1);
me.setList(list2); String str2 = JsonUtil.object2JsonString(me);
System.out.println("str2=" + str2); // 复杂Json转化bean
System.out.println("复杂Json转化bean:");
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("list", ChildBean.class); // 指定复杂类型属性的映射关系,可以使多个放到map中
Person person = (Person) JsonUtil.jsonString2Object(str2, Person.class, classMap);
System.out.println(person);
System.out.println(person.getList().get(0).getChildName()); // Java数组转换为JSON
System.out.println("java数组转换为JSON:");
// String[] array = {"asd","dfgd","asd","234"};
ChildBean[] array = new ChildBean[10];
for (int i = 0; i < 10; i++) {
ChildBean childBean = new ChildBean("aaaaaa" + i, "boy", i);
array[i] = childBean;
}
String jsonArray = JsonUtil.javaArray2Json(array);
System.out.println(jsonArray); // Json数组转化为Java数组
System.out.println("Json数组转化为Java数组:");
ChildBean[] cb = (ChildBean[]) JsonUtil.jsonArray2JavaArrray(jsonArray, ChildBean.class);
System.out.println(Arrays.toString(cb)); //Map转换成json
System.out.println("Map转换成json:");
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId", 1000);
map.put("userName", "张三");
map.put("userSex", "男");
String jsonStr = JsonUtil.javaMap2Json(map);
System.out.println(jsonStr); //json转化为map
System.out.println("json转化为map:");
Map<String, Object> jmap = (Map<String, Object>)JsonUtil.javaMap2Json(jsonStr, Map.class);
System.out.println(jmap);
}
}
注意:
1.代转化的bean如果自定义了构造方法,必须写上默认的构造方法,否则Json转化时候,曝出init()方法找不到!
2.对于Date和Timestamp日期类型字段需要单独处理(本例不含这种类型,请参看我的博客《含有Date和Timestamp的Java和Json互相转化》)
java bean、List、数组、map和Json的相互转化的更多相关文章
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...
- java中Array/List/Map/Object与Json互相转换详解
http://blog.csdn.net/xiaomu709421487/article/details/51456705 JSON(JavaScript Object Notation): 是一种轻 ...
- 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)
转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...
- json学习初体验--第三者jar包实现bean、List、map创json格式
1.的需要jar包裹json-lib.jar 下载链接: http://sourceforge.net/projects/json-lib/files/json-lib/ 此包还须要下面的依赖包, c ...
- java中Array/List/Map/Object与Json互相转换详解(转载)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- Java bean 转 Map
Java bean 转 Map 时需要使用Fastjson //方法 一 Map<String, Object> a = (Map<String, Object>)JSON.t ...
- Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套
原文链接:http://www.itjhwd.com/java_json/ 代码 package com.itjh.mmp.util; import java.io.BufferedReader; i ...
- java处理json的工具类(list,map和json的之间的转换)
需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...
- JSON数组对象和JSON字符串的转化,map和JSON对象之间的转化
这种用法包括前端和后端: 前端: 1. 转化为JSON对象方便操作 var jsonObj = JSON.parse(str); 得到的是一个json数组对象,可以通过 for (var p in j ...
随机推荐
- 关于MySql数据库设计表与查询耗时分析
本地建一张表persons,使用脚本插入了1000万条数据 下面比较几种查询方法的耗时(查询9000000到9000005这中间5条数据) 查询结果: 1: SELECT * FROM test.pe ...
- 【模板】【转载】区间dp
区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优 ...
- Servlet中使用Log4j2
因为Servlet常用的版本有两个,即2.5与3.0.要在web application中使用Log4j2,还需要加入log4j-web的jar包.log4j通过web.xml中的context参数l ...
- centos使用jexus支持php小记录
安装php(文章参考http://linuxdot.net/bbsfile-3132) yum install php 1)修改“/etc/php.ini”文件(有的位置在/etc/php5/cgi/ ...
- linux 禁ping本机方法
linux 禁ping本机方法 禁ping执行:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 恢复ping 执行:echo 0 > /p ...
- UIAlertView、 UIActionSheet
一.UIAlertView. UIActionSheet都是ios系统自带的弹出式对话框,当UIAlertView或UIActionSheet弹出来时用户无法与应用界面中的其它控件交互,UIAlert ...
- UILabel和UIButton
一.UILabel 1.UILabel:标签,主要用来显示文字. 创建步骤: (1)开辟空间并初始化(如果本类有初始化方法,使用自己的,否则,使用负父类的). UILabel *textLabel ...
- Java入门 任务表
Java IO Java ,MySQL Java Internet 线程,同步 冒泡法排序 1.
- C语言中的内存分配与释放
C语言中的内存分配与释放 对C语言一直都是抱着学习的态度,很多都不懂,今天突然被问道C语言的内存分配问题,说了一些自己知道的,但感觉回答的并不完善,所以才有这篇笔记,总结一下C语言中内存分配的主要内容 ...
- [ACM_图论] Highways (变形说法的最小生成树)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28972#problem/C 题目给出T种情况,每种情况有n个城镇,接下来每一行是第i个城 ...