Json与bean的相互转换
本文使用json-lib jar包实现Json与bean的相互转换
1.将字符串转为JSON
使用JSONObject.fromObject(str)方法即可将字符串转为JSON对象
使用JSONObject.put("attribute","value")可为JSON添加属性
如果需要转为JSON数组,只需使用JSONArray对象提供的方法即可
/**
* 一些简单的转换
*/
public static void transformStringTest() {
String str = "{" + "\"id\":" + "\"1\"," + "\"name\":" + "\"zhangsan\""
+ "}";
//1.将字符串转为JSON
JSONObject jsonObj = JSONObject.fromObject(str);
System.out.println(jsonObj.toString());
//JSON添加属性
jsonObj.put("age", "22");
System.out.println(jsonObj.toString());
//2.将对象转为数组
JSONArray jsonArr = JSONArray.fromObject(jsonObj);
System.out.println(jsonArr.toString());
//3.将数组添加到JSON对象中
JSONObject obj = new JSONObject();
obj.put("employees", jsonArr);
System.out.println(obj.toString());
}
/* 输出内容
* {"id":"1","name":"zhangsan"}
* {"id":"1","name":"zhangsan","age":"22"}
* [{"id":"1","name":"zhangsan","age":"22"}]
* {"employees":[{"id":"1","name":"zhangsan","age":"22"}]}
*/
2.将对象转为JSON
首先创建People类
public class People {
private String name;
private String idcard;
public People() {
}
public People(String name, String idcard) {
this.name = name;
this.idcard = idcard;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
}
将对象转为JSON同样使用SONObject.fromObject(obj)方法
如果是一个List,转为JSON时需要使用JSONArray将对象转为JSON数组
public static void transformObjectTest() {
People p1 = new People("a", "111111");
//1.将对象转为json
System.out.println(JSONObject.fromObject(p1));
List<People> peopleList = new ArrayList<People>();
peopleList.add(p1);
//2.将list转为json(需要使用数组JSONArray)
JSONArray arr = JSONArray.fromObject(peopleList);
System.out.println(arr.toString());
}
/*输出内容
* {"idcard":"111111","name":"a"}
* [{"idcard":"111111","name":"a"}]
*/
3.JSON转为bean
json转为bean的方法也非常简单,只需使用JSONObject.toBean()方法即可,使用该方法的时候需要传入Bean的class
/**
* 将json转换为bean
* @param json
* @param type
* @return
*/
public static <T> Object transformJsonToBean(String json, Class<T> type) {
JSONObject jsonObject = JSONObject.fromObject(json);
return JSONObject.toBean(jsonObject, type);
}
4.JSON转为list<bean>集合
由于是集合,所以需要使用JSONArray,JSONArray提供了toCollection方法,使用该方法同样需要传入bean的class
/**
* 项目名称:tools
* 项目包名:com.songfayuantools.json
* 创建时间:2017年7月31日上午11:58:51
* 创建者:Administrator-宋发元
* 创建地点:
*/
package com.songfayuantools.json; import com.songfayuantools.entity.UserInfo; import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer; /**
* 描述:JSONObject使用方法详解
* JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。
* @author songfayuan
* 2017年7月31日上午11:58:51
*/
public class Json { /**
* 描述:json字符串转java代码
* @author songfayuan
* 2017年8月2日下午2:24:47
*/
public static void jsonToJava() {
System.out.println("json字符串转java代码");
String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
String username = jsonObject.getString("username");
String password = jsonObject.getString("password");
System.err.println("json--->java \n username="+username+"\t passwor="+password);
} /**
* 描述:java代码封装为json字符串
* @author songfayuan
* 2017年8月2日下午2:30:58
*/
public static void javaToJSON() {
System.out.println("java代码封装为json字符串");
JSONObject jsonObject = new JSONObject();
jsonObject.put("username", "宋发元");
jsonObject.put("age", 24);
jsonObject.put("sex", "男");
System.out.println("java--->json \n " + jsonObject.toString());
} /**
* 描述:json字符串转xml字符串
* @author songfayuan
* 2017年8月2日下午2:56:30
*/
public static void jsonToXML() {
System.out.println("json字符串转xml字符串");
String jsonStr = "{\"username\":\"宋发元\",\"password\":\"123456\",\"age\":\"24\"}";
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
XMLSerializer xmlSerializer = new XMLSerializer();
xmlSerializer.setRootName("user_info");
xmlSerializer.setTypeHintsEnabled(false);
String xml = xmlSerializer.write(jsonObject);
System.out.println("json--->xml \n" + xml);
} /**
* 描述:xml字符串转json字符串
* @author songfayuan
* 2017年8月2日下午3:19:25
*/
public static void xmlToJSON() {
System.out.println("xml字符串转json字符串");
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>宋发元</username></user_info>";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);
System.out.println("xml--->json \n" + json.toString());
} /**
* 描述:javaBean转json字符串
* @author songfayuan
* 2017年8月2日下午3:39:10
*/
public static void javaBeanToJSON() {
System.out.println("javaBean转json字符串");
UserInfo userInfo = new UserInfo();
userInfo.setUsername("宋发元");
userInfo.setPassword("123456");
JSONObject jsonObject = JSONObject.fromObject(userInfo);
System.out.println("JavaBean-->json \n" + jsonObject.toString());
} /**
* 描述:javaBean转xml字符串
* @author songfayuan
* 2017年8月2日下午3:48:08
*/
public static void javaBeanToXML() {
System.out.println("javaBean转xml字符串");
UserInfo userInfo = new UserInfo();
userInfo.setUsername("songfayuan");
userInfo.setPassword("66666");
JSONObject jsonObject = JSONObject.fromObject(userInfo);
XMLSerializer xmlSerializer = new XMLSerializer();
String xml = xmlSerializer.write(jsonObject, "UTF-8");
System.out.println("javaBean--->xml \n" + xml);
} public static void main(String args[]) {
// jsonToJava();
// javaToJSON();
// jsonToXML();
// xmlToJSON();
// javaBeanToJSON();
javaBeanToXML();
} }
Json与bean的相互转换的更多相关文章
- json和java bean的相互转换(使用fastjson)
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...
- JSON,Bean,XML,List,Map
http://blog.csdn.net/superit401/article/details/51728929 JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把J ...
- C# Json 和对象的相互转换
Json 和对象的相互转换 /// <summary> /// Json 和对象的相互转换 ——需引用using Newtonsoft.Json; 即:Jsonnet.net..... / ...
- Map和Bean的相互转换
Map和Bean的相互转换 BeanUtils位于org.apache.commons.beanutils.BeanUtils下面,其方法populate的作用解释如下: 完整方法: BeanUtil ...
- 利用jaxb实现xml和bean的相互转换
1.使用jar包生成xsd文件 java -jar trang.jar a.xml a.xsd xml格式 生成的xsd文件 2.使用xjc命令生成bean文件 xjc a.xsd 生成的相关bean ...
- java中 json和bean list map之间的互相转换总结
JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...
- JS中实现JSON对象和JSON字符串之间的相互转换
对于主流的浏览器(比如:firefox,chrome,opera,safari,ie8+),浏览器自己提供了JSON对象,其中的parse和stringify方法实现了JSON对象和JSON字符串之间 ...
- Json与Bean互转,Timestamp类型的问题
Json与Java Bean互相转换时,Bean中的Timestamp字段是无法直接处理的,需要实现两个转换器. DateJsonValueProcessor的作用是Bean转换为Json时将Time ...
- java对象与json对象间的相互转换
工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...
随机推荐
- 破解Linux系统root用户密码
linux系统的启动过程 在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...
- KVM虚拟机安装报错 KVM is not available
在linux系统上使用kvm安装系统时,如果你的cpu不支持虚拟化技术那么可能会报以下错误: Warning:KVM is not available. This may mean the KVM p ...
- javascript基础拾遗(一)
1.判断变量类型 var num = '123'; if(typeof num == 'number'){ alert('this is a number'); } else{ throw 'this ...
- 使用JPush(极光推送)实现远程通知
使用JPush(极光推送)实现远程通知 远程推送是APP 必备的功能, 现在第三方的 SDK 已经做的非常完备了, 在 iOS10.0出来之后, 极光推送也及时更新了他的 SDK, 今天小试了一下效果 ...
- 根据ip查询经纬度的接口
http://ip-api.com/json/ 直接访问,结果如下 // 20180804140751 // http://ip-api.com/json/ { "as": &qu ...
- DIOCP3-关于TIOCPConsole和编码解码器
TIOCPConsole是继承至TIocpTcpServer,做了管理和调用编码和解码器器的功能.可以通过向他注册编码和解码器可以忽略粘包的问题. 这样如果TIOCPConsole客户端必须按照一 ...
- 生产者消费者问题Java三种实现
生产者-消费者Java实现 2017-07-27 1 概述 生产者消费者问题是多线程的一个经典问题,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品. 解决生产者/ ...
- 6款漂亮HTML CSS样式用户留言表单
如今我们的网站.页面更加需要注重细节,不论是字体的样式.还是图片的分辨率清晰度都会影响到用户的访问体验和PV,以及用户以后是否会回访我们的网站/博客.如果有时间的时候,老左也会浏览和阅读相关的前端网站 ...
- 【神经网络】神经网络结构在命名实体识别(NER)中的应用
命名实体识别(Named Entity Recognition,NER)就是从一段自然语言文本中找出相关实体,并标注出其位置以及类型,如下图.它是NLP领域中一些复杂任务(例如关系抽取,信息检索等)的 ...
- Python3将两个有序数组合并为一个有序数组
[本文出自天外归云的博客园] 第一种思路,把两个数组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性.(不好) 第二种思路,循环比较两个有序数组头位元素的大小,并把头元素放到 ...