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 ...
随机推荐
- 需要插入子集的时候如何更新父级ID
场景模拟: 我们需要在不同的新闻站点中采集新闻信息, 所以需要在数据库中保存一个新闻站点表(Site) 一个新闻表(News) 两表之间的关系是 Site(1)-News(N) 数据库 ...
- 在KEIL中的模块化程序写法
在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问题的.但是当程序很长的时候, ...
- 谈谈SpringMVC Validation
2016-10-12 19:26:08,897 [INFO ] [http-nio-8032-exec-1] HttpHeaderValidator:84 - HttpHeaderValidator. ...
- [Socket]BSD Socket网络通信
http://blog.csdn.net/dongfengsun/article/details/4802925 文章有一些错误 #define KENTER @"/r/n" 应该 ...
- Perl脚本学习经验(四)--Perl中sftp的使用
使用sftp,需要使用Except模块,该模块需要下载安装在perl目录下,可以上http://www.cpan.org/上下载对应的安装包:1. 用root用户登录环境:2. cd /usr/lib ...
- jQueryEasyUI中DataGrid的height,width,fit,fitColumns属性
height: 600, //不指定则默认垂直包裹,指定了则固定 width:1200,//不指定则水平100%平铺,指定了则固定 fit:false,//true:高度填充父窗体,忽略height属 ...
- 【HDOJ】5096 ACM Rank
Treap+set仿函数重定义.每当ac一道题目时,相当于对总时间减去一个大数. /* 5096 */ #include <iostream> #include <string> ...
- PHP 'ext/soap/php_xml.c'不完整修复多个任意文件泄露漏洞
漏洞版本: PHP 5.4.1 PHP 5.3.13 PHP 5.3.12 PHP 5.3.11 PHP 5.3.10 PHP 5.3.1 PHP 5.3 漏洞描述: BUGTRAQ ID: 6237 ...
- SSI指令使用详解(转)
什么是 SHTML使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似 ...
- Delphi 继承基类的窗体,并显示基类的控件操作。
1. 先建一个普通的窗体,until1 2. 先把类实现基类, 并需要实现基类需要继承的方法, 可以先不用再方法中写实现代码. TForm4 = class(TfrmmtAReportPeriod ...