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]
时间: 2024-08-07 16:58:37

json数组和List转换的相关文章

(精华)将json数组和对象转换成List和Map(小龙哥和牛徳鹤的对话)

将java标准的数据结构ArrayList和HashMap转换成json对象和数组很简单 只需要JSONArray.fromObject(obj);或者JSONObject.fromObject(obj); 将json对象转换成Map(必须用到遍历) public static void main(String[] args){ HashMap<String, Object> map = new HashMap<String, Object>(); map.put("na

ios XML,JSON,数组解析并转换成NSMutableArray(List&lt;class&gt;)

一.简介 JSON解析: 通过正则将JSON([{...},{...}...])分解成多个包含实体实例内容的一小节({...}),在一小节中通过Runtime(运行时)(<objc/runtime.h>)将实体所有属性值找到并赋值(正则查找实现)到实例({...} --> 实体的一个实例),遍历所有小节({...})就将XML转换成NSMutableArray(类似:List<class>). XML 解析: 通过GDataXml(也可以通过正则)将XML分解成多个包含实体实

json数组和List转换相关问题

以下两种方法我都用过 方法一: String jstr="{'json':'jsonvalue','bool':true,'int':1,'double':'20.5'}";JSONObject json=JSONObject.fromObject(jstr);boolean bool=json.getBoolean("bool");int i=json.getInt("int");double d=json.getDouble("do

Spring 接收转换 jquery ajax json数组字符串

1.ajax发送json字符串 </pre><p>组建对象</p><p></p><pre code_snippet_id="449843" snippet_file_name="blog_20140813_2_7927326" name="code" class="javascript">var student = new Object(); studen

字符串集合或字符串数组转换成json数组

字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. List<String>类型的字符串集合转换成JSON数组,如下所示: List<String> shotLst = ecsDao.selectShotInstanceData4Ali(requestShotMap); JSONArray shotrray = JSONArray.fr

List和json数组的转换(赋源代码)

public class a11111111 { //参数obj可以是 json对象,字符串, list public static void fun(Object obj){ JSONArray data = JSONArray.fromObject(obj); for(int i=0;i<data.size();i++){ JSONObject jobj = (JSONObject) data.get(i); System.out.println(jobj); /** *{"aid&q

json数组去重

// json数组去重 function getJsonArr(arr) { //定义需要的空数组 var newArr = []; //定义转换字符串后的数组 var newStringArr = []; $.each(arr, function (i, v) { var sArr = JSON.stringify(v); if ($.inArray(sArr, newStringArr) == -1) { // 根据字符串数组push对象 newStringArr.push(sArr); n

PHP中json_encode()使用须知,JSON数组和JSON对象

body { font: 12px/1.5 Tahoma, Arial, Helvetica, sans-serif } ? 偷偷的告诉你,这是一个很不谨慎就会踩得坑 ?  如下代码 (看了一下很简单,没毛病啊,老铁) $arr = array( '0'=>'a','1'=>'b','2'=>'c','3'=>'d' ); echo json_encode($arr); 但是结果是 ["a","b","c","d

Java类对象和Json数据之间的转换

表字段过多,不想分别保存到数据中,使用频率低,所以考虑使用Jave类 -- Json之间的数据转换. 1.类转换Json,并保存到数据 Attribute.java 1 /** 2 * 属性数据结构 3 * 4 */ 5 public class Attribute { 6 7 private static final long serialVersionUID = -1L; 8 9 private Long attrId; 10 11 private List<AttributeValue>