工程

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的相互转化的更多相关文章

  1. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  2. java中Array/List/Map/Object与Json互相转换详解

    http://blog.csdn.net/xiaomu709421487/article/details/51456705 JSON(JavaScript Object Notation): 是一种轻 ...

  3. 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...

  4. json学习初体验--第三者jar包实现bean、List、map创json格式

    1.的需要jar包裹json-lib.jar 下载链接: http://sourceforge.net/projects/json-lib/files/json-lib/ 此包还须要下面的依赖包, c ...

  5. java中Array/List/Map/Object与Json互相转换详解(转载)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...

  6. Java bean 转 Map

    Java bean 转 Map 时需要使用Fastjson //方法 一 Map<String, Object> a = (Map<String, Object>)JSON.t ...

  7. Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套

    原文链接:http://www.itjhwd.com/java_json/ 代码 package com.itjh.mmp.util; import java.io.BufferedReader; i ...

  8. java处理json的工具类(list,map和json的之间的转换)

    需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...

  9. JSON数组对象和JSON字符串的转化,map和JSON对象之间的转化

    这种用法包括前端和后端: 前端: 1. 转化为JSON对象方便操作 var jsonObj = JSON.parse(str); 得到的是一个json数组对象,可以通过 for (var p in j ...

随机推荐

  1. msyql 数据库恢复相关

    通过bin日志恢复数据 一.通过bin日志生成 sql #/usr/local/mysql/bin/mysqlbinlog -d dbname --base64-output=DECODE-ROWS ...

  2. replicate-rewrite-db

    replicate-rewrite-db: Tells the slave to translate the default database (that is, the one selected b ...

  3. 新机自动创建yum库

    #!/bin/bash#for a newsystem to setup auto reposity YUM_DIR=/etc/yum.repos.dMOUNT_DIR=/mntDEV_DIR=&qu ...

  4. tomee 系列问题

    1. remote client 无法建立连接 修改system.properties # allowed packages to be deserialized, by security we de ...

  5. Fire uva 11624

    题目连接:http://acm.hust.edu.cn/vjudge/problem/28833 /* 首先对整个图bfs一次得到火焰燃烧的时刻表 之后在bfs搜路径时加一个火烧表的判断 坑点在于:如 ...

  6. WinRAR安装、破解与去除弹窗广告

    本教程教大家怎么破解WinRAR压缩软件和去除广告(教程属于总结类,总结网上给出的方法,并且亲测有效,非本人原创)WinRAR5.40 2016.10.06 首先下载WinRAR软件,去它的官方英文网 ...

  7. Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes.WeiChat微信开发框架时,发现之前做的自定义菜单这块太不给力了,而各 ...

  8. 用jstl截取字符串

    用jstl截取字符串 2011-08-01 08:55 5485人阅读 评论(0) 收藏 举报 stringfunctionjavahtmljspencoding jstl以前在jsp页面截取字符串时 ...

  9. mongo(三)基本操作

    mongo(三)基本操作 本文来自mongodb官方文档的部分翻译以及自己的理解.   CRUD:增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delet ...

  10. 使用ConditionalScope进行高效的SharePoint CSOM编程

    在上一篇文章中讲述了 ExceptionHandlingScope的使用后,本章主要讲述ConditionalScope的用法. ConditionalScope在设计思路和解决问题上同Excepti ...