json <--->List集合,实体类 之间的相互转换
json所依赖的jar包
http://files.cnblogs.com/files/wenjie123/json_jar%E5%8C%85.rar package com.hp.svse; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale; import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
* Timestamp 处理器
*/
public class JsonDateValueProcessor implements JsonValueProcessor { private String formatDateTime ="yyyy-MM-dd HH:mm:ss";
private String formatDate ="yyyy-MM-dd";
public Object processArrayValue(Object value, JsonConfig config) {
return process(value);
} public Object processObjectValue(String key, Object value, JsonConfig config) {
return process(value);
} private Object process(Object value){ if(value instanceof Date){
SimpleDateFormat sdf ;
if(value.toString().length()<=11||value.toString().indexOf("00:00:00.0")>=0){
sdf= new SimpleDateFormat(formatDate,Locale.UK);
}else{
sdf= new SimpleDateFormat(formatDateTime,Locale.UK);
}
return sdf.format(value);
}
return value == null ? "" : value.toString();
}
}
package com.hp.svse; import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; public class JsonTest {
public static void main(String[] args) { /**
* 将对象集合转换成JSON格式的字符串
*/
List<Student> students = new ArrayList<Student>();
students.add(new Student("小明1", "男", "湖北", "SVSE"));
students.add(new Student("小明2", "女", "广东", "GIS"));
students.add(new Student("小明3", "男", "香港", "3G"));
JsonTest jsonTest = new JsonTest();
String json = jsonTest.beanListToJSON(students);
System.out.println(json);
/**
* 输出结果:
* [
* {"sex":"男","address":"湖北","stuname":"小明1","classname":"SVSE","smallStudents":[]},
* {"sex":"女","address":"广东","stuname":"小明2","classname":"GIS","smallStudents":[]},
* {"sex":"男","address":"香港","stuname":"小明3","classname":"3G","smallStudents":[]}
* ]
*/ /**
* 将json字符串转换成json对象 再讲json对象转换成实体对象bean
*/
String bookCotentjsonStr = "{\"sex\":\"男\",\"address\":\"湖北\",\"stuname\":\"小明1\",\"classname\":\"SVSE\"}";
JSONObject bookCotentjson = JSONObject.fromObject(bookCotentjsonStr);
Student student = (Student) JSONObject.toBean(bookCotentjson, Student.class);
System.out.println(student);
/**
* 输出结果:Student [address=湖北, classname=SVSE, sex=男, stuname=小明1]
*/ /**
* 将对象转换成JSON格式的字符串 适用于单个对象(单个对象里可以包含List<T>)的转换
*/
List<SmallStudent> smallStudents = new ArrayList<SmallStudent>();
for (int i = 0; i < 3; i++) {
SmallStudent smallStudent = new SmallStudent();
smallStudent.setName("小学生"+i);
smallStudent.setAge("1"+i);
smallStudents.add(smallStudent);
}
Student student2 = new Student("小明", "男", "武汉", "svse",smallStudents);
String jsonStr = jsonTest.beanToJSON(student2);
System.out.println(jsonStr);
/**
* 输出结果:
* {"sex":"男","address":"武汉","stuname":"小明","classname":"svse","smallStudents":[{"sex":"","age":"10","name":"小学生0"},{"sex":"","age":"11","name":"小学生1"},{"sex":"","age":"12","name":"小学生2"}]}
*/ }
/**
* 将集合转换成JSON格式的字符串
*/
public <T> String beanListToJSON(List<T> t) {
String json = "";
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,
new JsonDateValueProcessor());
if(t!=null){
json = JSONArray.fromObject(t, jsonConfig).toString();
}else{
json="[]";
}
return json;
} /**
* 将对象转换成JSON格式的字符串 适用于单个对象(单个对象里可以包含List<T>)的转换
*/
public <T> String beanToJSON(T t) {
String json = "";
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,
new JsonDateValueProcessor());
if(t!=null){
json = JSONObject.fromObject(t, jsonConfig).toString();
}else{
json="[]";
}
return json;
}
}
package com.hp.svse;
import java.util.List;
public class Student {
private String stuname;
private String sex;
private String address;
private String classname;
private List<SmallStudent> smallStudents;
public Student(String stuname, String sex, String address, String classname,List<SmallStudent> smallStudents) {
super();
this.stuname = stuname;
this.sex = sex;
this.address = address;
this.classname = classname;
this.smallStudents = smallStudents;
}
public Student(String stuname, String sex, String address, String classname) {
super();
this.stuname = stuname;
this.sex = sex;
this.address = address;
this.classname = classname;
}
public Student() {
super();
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public List<SmallStudent> getSmallStudents() {
return smallStudents;
}
public void setSmallStudents(List<SmallStudent> smallStudents) {
this.smallStudents = smallStudents;
}
@Override
public String toString() {
return "Student [address=" + address + ", classname=" + classname
+ ", sex=" + sex + ", stuname=" + stuname + "]";
}
}
package com.hp.svse;
public class SmallStudent {
private String name;
private String age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "SmallStudent [age=" + age + ", name=" + name + ", sex=" + sex
+ "]";
}
}
json <--->List集合,实体类 之间的相互转换的更多相关文章
- android开发学习 ------- json数据与实体类之间的相互转换
在网络请求的时候,会返回给我们实体类,我们需要将实体类转化为json字符串,方便处理数据: 有时候也会将json数据转换为实体类. 在Android Studio中,json要互相转换,需要用到gso ...
- ASP.NET JSON数据转实体类方式
实体类 public class FlieList { public string file_unid { get; set; } public string file_name { get; set ...
- 【转】C#中将JSon数据转换成实体类,将实体类转换成Json
http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...
- (转)DATATABLE(DATASET)与实体类之间的互转.
转自:http://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html dataset和实体类 之间的转换 //dataset转实体类 代 ...
- java 使用反射在dto和entity 实体类之间进行转换
package com.example.demo.utils; import java.lang.reflect.Method; import java.util.List; import com.e ...
- ASP.NET自带对象JSON字符串与实体类的转换
关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个 ...
- JSON.net 在实体类中自定义日期的格式
定义日期格式转换类,其继承 IsoDateTimeConverter,代码如下: public class DateTimeConverter : IsoDateTimeConverter { pub ...
- c# XML和实体类之间相互转换(序列化和反序列化)[砖]
link: http://blog.okbase.net/haobao/archive/62.html by: 好饱 我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlU ...
- C# XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...
随机推荐
- JAVA 反序列化攻击
Java 反序列化攻击漏洞由 FoxGlove 的最近的一篇博文爆出,该漏洞可以被黑客利用向服务器上传恶意脚本,或者远程执行命令. 由于目前发现该漏洞存在于 Apache commons-collec ...
- 创建基于文件组的数据库SQL救命语句
CREATE DATABASE Sales ON PRIMARY (NAME = SPri1_dat, FILENAME = 'D:\SQLDB\SPri1dat.mdf', SIZE , MAXSI ...
- linux网络配置正确,能够ping通内网地址,无法打开外网网页
在虚拟机里面装了linux后,发现内网能访问,外网访问不了. 首先确定网络配置没有问题,并且能够访问外网,通过以下方法进行确认: [root@localhost ~]# more /etc/sysco ...
- asp.net 登陆后在ashx处理程序中获取不到Session
登录后存储Session,另一个页面Ajax请求 ashx页面,发现无法获取到Session,Session is NULL 使用“IReadOnlySessionState”这个接口就可以
- Buying Feed, 2010 Nov (单调队列优化DP)
约翰开车回家,又准备顺路买点饲料了(咦?为啥要说"又"字?)回家的路程一共有 E 公里,这一路上会经过 K 家商店,第 i 家店里有 Fi 吨饲料,售价为每吨 Ci 元.约翰打算买 ...
- 标准MD5加密算法
标准MD5加密算法: public class Md5 { public static String getMd5(String s) { char hexDigits[] = { '0', '1', ...
- android视频播放
视频播放我们用到的是MediaPlayer,显示控件使用的surfaceView 我们向SD卡中先添加个视频文件,我的是xajh.3gp,不要用mp4,MP4会出现 should have subti ...
- oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)
oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.o ...
- POJ_3111_K_Best_(二分,最大化平均值)
描述 http://poj.org/problem?id=3111 n个珠宝,第i个有价值v[i]和重量w[i],要从总选k个,使得这k个的(价值之和)/(重量之和)即平均价值最大,输出选中的珠宝编号 ...
- 向SharePoint页面添加后台代码
转:http://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html 在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一 ...