json数组和List转换
package hb;
import java.util.Date;
public class Person {
String id;
int age;
String name;
Date birthday;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
package hb; import java.util.Iterator;
import java.util.List; import org.junit.Test; import net.sf.json.JSONArray;
import net.sf.json.JsonConfig; public class JsonToList { public static void main(String[] args) {
String json="[{'name':'huangbiao','age':15},{'name':'liumei','age':14}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
List list = (List)JSONArray.toCollection(jsonarray, Person.class);
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
}
} @Test
public void jsonToList1(){
String json="[{'name':'huangbiao','age':15},{'name':'liumei','age':14}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
List list = (List)JSONArray.toList(jsonarray, Person.class);
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
} } @Test
public void jsonToList2(){
String json="[{'name':'huangbiao','age':15},{'name':'liumei','age':14}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
System.out.println("------------");
List list = (List)JSONArray.toList(jsonarray, new Person(), new JsonConfig());
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
} } }
package hb; import java.util.LinkedList;
import java.util.List; import net.sf.json.JSONArray; public class ListToJson { public static void main(String[] args) {
List list = new LinkedList();
for(int i=0;i<3;i++){
Person p = new Person();
p.setAge(i);
p.setName("name"+i);
list.add(p);
}
JSONArray jsonarray = JSONArray.fromObject(list);
System.out.println(jsonarray);
} }
[{"age":0,"birthday":null,"id":"","name":"name0"},{"age":1,"birthday":null,"id":"","name":"name1"},{"age":2,"birthday":null,"id":"","name":"name2"}]
使用的是json-lib.jar包
将json格式的字符数组转为List对象
转载自:http://hbiao68.iteye.com/blog/1771155
另外自己项目中使用hibernate 查询出来的是List<HashMap>,
转换过程 List<HashMap>----->JSONArray---->List<业务对象> 如果是联合查询,则这个业务对象需要加入新的成员变量,
如果加入了并不希望有数据库字段映射,就在属性上加上 @Transient
public class PaymentReq implements Serializable {
private static final long serialVersionUID = -1515222020971048819L;
// u.userId,u.userName,u.openId,u.sex,u.phone,u.userPaymentMoney,pr.paymentReqId,pr.addTime
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long paymentReqId;
private String addTime;
private Long userId;
@Transient
private String userName;
@Transient
private String openId;
@Transient
private String sex;
@Transient
private String phone;
@Transient
private String userPaymentMoney;
public List<HashMap> findAllPaymentReqByUserId(Long userId){
Session session = sessionFactory.getCurrentSession();
StringBuffer sql=new StringBuffer("select u.userId,u.userName,u.openId,u.sex,u.phone,u.userPaymentMoney,pr.paymentReqId,pr.addTime ");
sql.append("from user u,paymentreq pr ");
sql.append("where u.userId=pr.userId ");
sql.append("and u.userPaymentMoney>'0' ");
sql.append("order by pr.addTime asc");
Query query = session.createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<HashMap> list = query.list();
return list;
}
@Test
public void testfindAllPaymentReqByUserId(){
List<HashMap> list=paymentReqService.findAllPaymentReqByUserId(1L);
JSONArray jsonArray=JSONArray.fromObject(list);
List list_ = (List)JSONArray.toCollection(jsonArray, PaymentReq.class);
for(int i=0;i<list_.size();i++){
PaymentReq pr=(PaymentReq)list_.get(i);
System.out.println(pr);
} }
//打印结果
PaymentReq [paymentReqId=1, addTime=2014-11-15 19:27:23, userId=1, userName=text, openId=1, sex=0, phone=18681883016, userPaymentMoney=2.01]
PaymentReq [paymentReqId=2, addTime=2014-11-15 19:27:23, userId=2, userName=text, openId=null, sex=0, phone=18681883015, userPaymentMoney=10]
json数组和List转换的更多相关文章
- JSON数组不用字符串转换的写法
var organization = []; //机构组织 //初始化用户数据列表中用户机构列的数据源 admin.ajax("GetOrganizationInfo", null ...
- (精华)将json数组和对象转换成List和Map(小龙哥和牛徳鹤的对话)
将java标准的数据结构ArrayList和HashMap转换成json对象和数组很简单 只需要JSONArray.fromObject(obj);或者JSONObject.fromObject(ob ...
- 合法的json数组字符串,转换json
List list = JSON.parseArray("[{'id':1,'name':'a'},{'id':2,'name','b'}]", JSONObject.class) ...
- 字符串集合或字符串数组转换成json数组
字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...
- json 数组 对象 xml 之间转换(待补充)
json 数组 xml 对象 之间转换(待补充) 1 把对象的类型或者数组转换成字符串类型(或者更确切的说是json类型的). 此处参考链接http://www.jb51.net/article ...
- 一个Json、数组、Dictionary转换和数组对比的C#实例
最近做了一个程序,里面一段代码用到Json.数组.Dictionary转换和数组对比的一些知识,虽然在实际碰到类似问题时候有更好的方法,但这就当是一次基础知识的回顾,现在分享一下. 先介绍下要实现的业 ...
- 做筛选遍历时遇到的json字符串、json对象、json数组 三者之间的转换问题
这个是后台对登录用户以及筛选条件的操作 @Override public List<SdSdPer> listResults(String sidx, String sord) { try ...
- List和json数组的转换(赋源代码)
public class a11111111 { //参数obj可以是 json对象,字符串, list public static void fun(Object obj){ JSONArray d ...
- Js前端传递json数组至服务器端并解析的实现。
最近做的一个小项目中需要将json数组数据传递到服务器端进行保存,现分享一下解决思路. 环境:EasyUi+Mvc 4.0 如下: 在上述截图中的红色圈起来的部分,需要在点击保存后通过一次ajax请求 ...
随机推荐
- Android 学习笔记之AndBase框架学习(一) 实现多功能标题栏
PS:Volley框架终于通过看源码的方式完成了所有的学习..开始学习AndBase...AndBase的源码实在是多的离谱...因此就不对所有的源码进行分析了... 学习内容: 1.使用AndBas ...
- 分析SIX锁和锁分区导致的死锁
什么是SIX锁? 官方文档锁模式中说到: 意向排他共享 (SIX):保护针对层次结构中某些(而并非所有)低层资源请求或获取的共享锁以及针对某些(而并非所有)低层资源请求或获取的意向排他锁. 顶级资源允 ...
- 基于KV Data Model实现Table Data Model
HBase对外暴露出来的是一个表格数据模型,如下图所示 rowkey应用程序可以自己设计.每一个Cell可以保存多个版本的数据,由timestamp标示版本.应用程序可以自己指定timestamp,如 ...
- 设计模式--适配器(Adapter)模式
今天学习另一个设计模式,适配器(Adapter)模式,这是一个共同方向,但有特殊要求,就应用到此设计模式.写到这里,想起很久以前,有写过一篇<ASP.NET的适配器设计模式(Adapter)&g ...
- MySQL更新优化
通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作).当读取者完成对表的操作的时候,锁就会 ...
- 从零开始学习Linux (cd命令)
上一篇博客中提到,我们学习命令大多都要参考 --help 这个选项.但是cd命令并没有这个选项. 我们可以通过 help cd 来查看cd的使用方式.其实cd命令挺简单的,它的作用是进入文件夹,也就是 ...
- Verilog学习笔记设计和验证篇(三)...............同步有限状态机的指导原则
因为大多数的FPGA内部的触发器数目相当多,又加上独热码状态机(one hot code machine)的译码逻辑最为简单,所以在FPGA实现状态机时,往往采用独热码状态机(即每个状态只有一个寄存器 ...
- android:ellipsize实现跑马灯效果总结(转)
最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会. 让我们一步步逐渐向下. 首先我们要实现走马灯这样一个效果,通常来说 ...
- jDiameter介绍以及使用
jDiameter是Diameter协议的开源实现(比较不幸的是AGPL 3.0协议),项目地址https://github.com/RestComm/jdiameter. 项目框架 jDiamete ...
- GetStartedWithWin10Develop
GetStartedWithWin10Develop 首先要确保已经配置好win10开发环境,开始第一个win10开发的HelloWorld 1.首先创建你的win10项目(示例的项目名称为 Hell ...