zoukankan      html  css  js  c++  java
  • java对象转json

    学会了在j2ee中使用ajax后,有时候从服务器返回客户端的数据是对象,自己手动拼凑
    json字符串容易出错,通过谷歌知道了json-lib这个类库,方便的支持java中对象到json字符串的转化。 
        看source-forge的json-lib介绍说,需要 
    jakarta commons-lang 2.4 
    jakarta commons-beanutils 1.7.0 
    jakarta commons-collections 3.2 
    jakarta commons-logging 1.1.1 
    ezmorph 1.0.6 

    jar包下载:java2json.jar 

      这些jar包的支持,下载下来试了一把,挺好用的,写出来,与大家分享。 
    代码如下:

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;


    public class Test {
    public static void main(String[] args) {
    //当是对象的时候
    Student student = new Student();
    student.setAge(18);
    student.setName("zhangsan");
    student.setSex("male");
    JSONObject jsonObject = JSONObject.fromObject(student);
    System.out.println(jsonObject);//输出{"age":18,"name":"zhangsan","sex":"male"}
    //当是数组或list的时候
    Student[] stus = new Student[5];
    List<Student> stuList = new ArrayList<Student>();
    for (int i = 0; i < stus.length; i++) {
    stus[i] = new Student();
    stus[i].setAge(i*10+8);
    stus[i].setName("zhang"+i);
    stus[i].setSex("male");
    //添加到list,一会儿用
    stuList.add(stus[i]);
    }
    JSONArray jsonArray = JSONArray.fromObject(stus);
    System.out.println(jsonArray);//和下面打印的结果相同
    // 结果:[{"age":8,"name":"zhang0","sex":"male"}, {"age":18,"name":"zhang1","sex":"male"},{"age":28,"name":"zhang2","sex":"male"},{"age":38,"name":"zhang3","sex":"male"},{"age":48,"name":"zhang4","sex":"male"}]
    JSONArray jsonArrayFromList = JSONArray.fromObject(stuList);
    System.out.println(jsonArrayFromList);//和上面打印的结果相同
    //当既有对象又有数组的时候
    Map<String,Object> map = new HashMap<String,Object>();
    Teacher teacher = new Teacher();
    teacher.setAge(30);
    teacher.setName("laoshi");
    teacher.setSex("male");
    map.put("teacher", teacher);
    map.put("student", stuList);
    JSONObject jsonObjectFromMap = JSONObject.fromObject(map);
    System.out.println(jsonObjectFromMap);
    //结果:
    //{"student":[{"age":8,"name":"zhang0","sex":"male"},{"age":18,"name":"zhang1","sex":"male"},{"age":28,"name":"zhang2","sex":"male"},{"age":38,"name":"zhang3","sex":"male"},{"age":48,"name":"zhang4","sex":"male"}],"teacher":{"age":30,"name":"laoshi","sex":"male"}}
    }
    }

  • 相关阅读:
    创作型---简单工厂模式
    创作型---建造者模式
    创作型---原型模式(C# ICloneable接口的实现)
    创作型---单例模式
    实时数据库简介和比较---PI
    记一次项目启动卡死不动,控制台无错误信息
    记一次jdk1.7升级jdk1.8项目报错
    javamail插件发送不同类型邮件方式
    javaweb购物车实现的几种方式
    android客户端app和服务端交互token的作用
  • 原文地址:https://www.cnblogs.com/im5437/p/5993169.html
Copyright © 2011-2022 走看看