JSONArray数据转换成java List

1.后台接收json数组转成封装实体类的List:

复制代码
package no.integrasco.ingentia.news.qaedition;

public class Person {

    private String name;

    private int age;

    public String getName() {

        return name;
    }

    public void setName(String name) {

        this.name = name;
    }

    public int getAge() {

        return age;
    }

    public void setAge(int age) {

        this.age = age;
    }
}

 

package no.integrasco.ingentia.news.qaedition;

import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;

public class JsonTest {

    /**
     * @param args
     */
    public static void main(String[] args) {

        // 转换方法1
        JSONArray array = JSONArray.fromObject("[{'name':'hehe','age':22}]");
        List<Person> list = JSONArray.toList(array, Person.class);// 过时方法
        System.out.println(list.get(0).getName());

        // 转换方法2
        List<?> list2 = JSONArray.toList(array, new Person(), new JsonConfig());//参数1为要转换的JSONArray数据,参数2为要转换的目标数据,即List盛装的数据
        Person person = (Person) list2.get(0);
        System.out.println(person.getAge());
    }

}
复制代码

2.从页面接收json格式的数据,在java类里面进行解析

复制代码
String jsonStr = {"name":"zfj","dd":[{"ddr":"1","encrypt":"2","ff":"1","length":"23","ffe":"editStyled","ill":"1","pkor":"2","name":"zfj","isKey":"2","alias":"ffff"}],"addRelations":[{"type":"2","ld":"zfj","ld":"2"}]}; 

//将此字符串放在ruquest或者其他的变量里面,传递到后台。 

//如放在reques中: 
request.getRequestDispatcher("/geServlet?data="+jsonStr).forward(request,response); 

//在servlet或java类里这样接收: 
String json = request.getParameter("data"); 
JSONObject jsonObject = JSONObject.fromObject(data); 
String name = jsonObject.getString(“name”); 
...... 
//对于数组这样接收用 

JSONArray jan = (JSONArray) jsonObject.get("dd"); 
if(jan!=null||jan.size()!=0){ 
  for(int i=0;i<ja.size();i++){ 
    JSONObject jo = JSONObject.fromObject(ja.get(i)); 
    String ff = jo.getString("ff"); 
                 ...... 
  } 
}
复制代码

 

posted @   岁月淡忘了谁  阅读(110777)  评论(1编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示