您现在的位置: 爱51代码网 >> 范文 >> 文章正文
json格式如何转换成javaBean对象

几天做京东接口的时候,京东给我返回的结果都是以json的形式返回的。刚开始很头痛,都是以str接受然后转发到html页面上直接打出来解决的。
后来想想是不能这么解决的,这样只能看结果,而不能处理结果集。
所以得把json格式转换成javaBean才可以。
于是查了一下资料,网上最多的资料就是下面的这种方式:

Java code?12345678910 String str = "[{\"id\":\"\",\"num\":\"\",\"dt\":\"2010-07-21T17:29:28\",\"consignee\":\"aaaa\",\"bank\":\"001\",\"ems\":\"0\"}]"; JSONArray array = JSONArray.fromObject(str);//先读取串数组 Object[] o = array.toArray();                //转成对像数组 System.err.println(o.length);             JSONObject obj = JSONObject.fromObject(o[0]);//再使用JsonObject遍历一个个的对像 Order oo = (Order)obj.toBean(obj,Order.class);//指定转换的类型,但仍需要强制转化-成功 System.err.println(oo.getDt()+","+oo.getConsignee());   String ss = oo.getDt(); 

需要jar包为:json-lib
但是京东提供的jar包里面我没有找到所需要的类。(不愿额外添加jar包)
于是继续找,终于找到了一个ObjectMapper
继续网上搜了一下这个类用法的例子,有,但是比较少,没有直接可以现成用的。
于是就开始自己尝试各种方法来做例子。
最终花费了2个小时终于尝试出来了一个简单的小例子。和大家分享一下,大手们别喷!~
首先字符串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";

接下来创建的是StudentList类
 public class StudentList {     List<Student> student;     public List<Student> getStudent() {         return student;     }       public void setStudent(List<Student> student) {         this.student = student;     }     }

下面是Student类

Java code?1234567891011121314151617 public class Student {     private String name;     private int age;     //private StudentClass studentClass;     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;     } }

最后测试程序
 import java.util.List; import org.codehaus.jackson.map.ObjectMapper;   public class JsonToJavaBean {     public static void main(String[] args) {         String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";         Student stu = null;         List<Student> list = null;         try {             ObjectMapper objectMapper=new ObjectMapper();             StudentList studentList=objectMapper.readValue(str, StudentList.class);             list=studentList.getStudent();         } catch (Exception e) {             // TODO Auto-generated catch block             e.printStackTrace();         }          for(Student s:list){             System.out.println(s.getName());         }     }

结果:

leilei
leilei02

成功。。兴奋ing!~
继续尝试一下在student的里面添加班级属性的方法
Class stuclass{
private int classid;
private int gradeid;
}

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    page = (HtmlPage) webClien
    eclipse 3.7中安装SWT插件连
    java变量退出作用域会自动析
    easyui-datagrid url调用act
    jna调用dll无法加载动态库
    poi读取excel遇到空行怎么办
    计算一个字符串类型的四则运
    InputStream中read(b)和byte
    eclipse的错找不到或无法加载
    Jdbc跟Hibernate操作数据库的
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |