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 ...
随机推荐
- 《UML大战需求分析》阅读笔记2
在第三章往后的章节里面,作者着重描述了uml各个图的具体用法,首先则是类图. 类图则表示程序中所出现的用到的类,用方框来表示,方框中分为三行,第一行是类的名字,第二行是类的成员变量(属性),第三行是成 ...
- EXCEL某列长度超过255个字符导入SQL SERVER的处理方法
问题描述: [Excel 源 [1]] 错误: 输出“Excel 源输出”(9) 上的 输出列“Description 3”(546) 出错.返回的列状态是:“文本被截断,或者一个或多个字符在目标代码 ...
- tomee.xml
部署 <?xml version="1.0" encoding="UTF-8"?> <tomee> <!-- see http:/ ...
- 热烈庆祝杨学明老师为苏宁、中兴、烽火、CNNIC、创维、金立、中航信等知名企业提供培训和咨询服务!
在2015年三季度,研发资深顾问.资深讲师杨学明先生为国内多家名企提供了培训和咨询服务!由于杨学明老师在软件及互联网方面的管理经验极为丰富,被多家公司选为首席研发讲师!并聘为常年顾问!
- 如何评估ETL的数据加载时间
简述如何评估大型ETL数据加载时间. 答:评估一个大型的ETL的数据加载时间是一件很复杂的事情.数据加载分为两类,一类是初次加载,另一类是增量加载. 在数据仓库正式投入使用时,需要进行一次初次加载,而 ...
- Rhythmbox中文乱码
今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 进入你的音乐文件夹执行如下代码: mid3iconv -e GBK *.mp3 如果没有提示多试几次, 有可能系统会提示: p ...
- 使用的组件:ckeditor
老牌Web文本编辑器,无需多言. 官网地址:http://ckeditor.com/
- 根据Url 获取图片尺寸 iOS
// 根据图片url获取图片尺寸 +(CGSize)getImageSizeWithURL:(id)imageURL { NSURL* URL = nil; if([imageURL ...
- C#过滤Html标签及空格
public static string FilterHTML(string HTMLStr) { if (!string.IsNullOrEmpty(HTMLStr)) return System. ...
- 在Android中开源类库使用过程中兼容性等问题的讨论
1.在Android4.0环境下编译的actionbarsherlock.slidingmenu类库,能不能在4.0以下的版本中使用 相信很多人跟我一样,都以为在低版本(如Android2.1或2.3 ...