JSONObject和JSONArray的简单使用

一. jar包

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar
  5. ezmorph.jar
  6. json-lib-2.2.2-jdk15.jar

二. 代码

package com.test;

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) {
        new Test().test1();
        new Test().test2();
        new Test().test3();
        new Test().test4();
        new Test().test5();
        new Test().test6();
        new Test().test7();
    }

    /**
     * JSON字符串转JSONObject对象
     */
    public void test1() {
        String jsonStr = "{\"name\":\"ZhangSan\",\"sex\":\"boy\",\"age\":18}";
        JSONObject jsonObj = JSONObject.fromObject(jsonStr);
        System.out.println(jsonObj.toString());
    }

    /**
     * 简单JSONObject对象转java对象
     */
    public void test2() {
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("name", "LiSi");
        jsonObj.put("sex", "girl");
        jsonObj.put("age", 17);
        Student student = (Student) JSONObject.toBean(jsonObj, Student.class);
        System.out.println(student.getName() + " | " + student.getSex() + " | " + student.getAge());
    }

    /**
     * 复杂JSONObject对象转java对象
     */
    @SuppressWarnings("rawtypes")
    public void test3() {
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("ZhangSan", "boy", 18));
        students.add(new Student("LiSi", "girl", 17));

        BanJi banji = new BanJi();
        banji.setBanJiName("日语二班");
        banji.setStudents(students);

        JSONObject jsonObj = JSONObject.fromObject(banji);
        Map<String, Class> classMap = new HashMap<String, Class>();
        classMap.put("students", Student.class);
        BanJi banji2 = (BanJi) JSONObject.toBean(jsonObj, BanJi.class, classMap);
        System.out.println(banji2.getStudents().get(0).getName()); // 验证转换是否成功
    }

    /**
     * 简单java集合对象转JSONArray
     */
    public void test4() {
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("ZhangSan", "boy", 18));
        students.add(new Student("LiSi", "girl", 17));
        JSONArray jsonArray = JSONArray.fromObject(students);
        System.out.println(jsonArray.toString());
    }

    /**
     * JSONArray转java集合对象
     */
    @SuppressWarnings({ "unchecked", "deprecation" })
    public void test5() {
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("name", "ZhangSan");
        jsonObj1.put("sex", "boy");
        jsonObj1.put("age", 18);

        JSONObject jsonObj2 = new JSONObject();
        jsonObj2.put("name", "lisi");
        jsonObj2.put("sex", "girl");
        jsonObj2.put("age", 17);

        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, jsonObj1);
        jsonArray.add(1, jsonObj2);

        List<Student> students3 = JSONArray.toList(jsonArray, Student.class);
        System.out.println(students3.get(0).getName());
        System.out.println(students3.get(1).getName());
    }

    /**
     * 复杂java集合对象转JSONArray
     */
    @SuppressWarnings({ "rawtypes", "unchecked", "deprecation" })
    public void test6() {
        BanJi banji1 = new BanJi();
        banji1.setBanJiName("日语一班");
        List<Student> students1 = new ArrayList<Student>();
        students1.add(new Student("ZhangSan", "boy", 18));
        banji1.setStudents(students1);

        BanJi banji2 = new BanJi();
        banji2.setBanJiName("日语二班");
        List<Student> students2 = new ArrayList<Student>();
        students1.add(new Student("LiSi", "girl", 17));
        banji2.setStudents(students2);

        List<BanJi> banjiList = new ArrayList<BanJi>();
        banjiList.add(banji1);
        banjiList.add(banji2);

        JSONArray jsonArray = JSONArray.fromObject(banjiList);
        Map<String, Class> classMap = new HashMap<String, Class>();
        classMap.put("students", Student.class);
        List<BanJi> banjiList2 = JSONArray.toList(jsonArray, BanJi.class, classMap);
        System.out.println(banjiList2.get(0).getStudents().get(0).getName());

    }

    /**
     * 拆分JSONArray为JSONObject
     */
    public void test7() {
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("name", "ZhangSan");
        jsonObj1.put("sex", "boy");
        jsonObj1.put("age", 18);

        JSONObject jsonObj2 = new JSONObject();
        jsonObj2.put("name", "lisi");
        jsonObj2.put("sex", "girl");
        jsonObj2.put("age", 17);

        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, jsonObj1);
        jsonArray.add(1, jsonObj2);

        JSONObject object = (JSONObject) jsonArray.get(0);
        System.out.println(object.toString());
    }

}
package com.test;

import java.util.List;

/**
 * 班级类
 */
public class BanJi {

    private String banJiName; // 班级名

    private List<Student> students; // 学生

    /**
     * 构造函数
     */
    public BanJi() {
        super();
    }

    // getters/setters(略)
}
package com.test;

/**
 * 学生类
 */
public class Student {

    private String name; // 姓名

    private String sex; // 性别

    private int age; // 年龄

    /**
     * 构造函数
     */
    public Student() {
        super();
    }

    /**
     * 构造函数
     */
    public Student(String name, String sex, int age) {
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    // getters/setters(略)
}
时间: 2024-07-29 02:32:33

JSONObject和JSONArray的简单使用的相关文章

JSONObject与JSONArray的使用

JSONObject与JSONArray的使用 一.JAR包简单介绍 要使程序能够执行必须引入JSON-lib包,JSON-lib包同一时候依赖于下面的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 二.JSONObject对象使用      JSON-lib包是一个be

JSONObject与JSONArray的使用区别

最近公司开发的几个项目中,后台Action向前端传递数据都是Json格式,于是对JSONObject.JSONArray简单的研究了一下,废话不多说,想使用JSONObject.JSONArray,策则在项目中必须要有commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar  ezmorph.jar json-lib-2.2.2-jdk15.jar 这些Jar包. 1.JSONObject

Gson基本操作,JsonObject,JsonArray,String,JavaBean,List互转

http://www.cnblogs.com/jianyungsun/p/6647203.html http://blog.csdn.net/pg_guo/article/details/51083502 String.JsonObject.JavaBean 互相转换 User user = new Gson().fromJson(jsonObject, User.class); User user = new Gson().fromJson(string, User.class); Strin

JSONObject与JSONArray的使用 jsonobject里面包含jsonarray

好多人用的是json-lib,要用那么多库很麻烦啊,直接eclipse里面用android自带的json就好. 很简单下面我贴下代码 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; 看这个是自带的json JSONObject param = new JSONObject(); for (int j = 0; j < postParams.length; j++) { //

Java生成json串、JSONObject与JSONArray的使用

1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 2.JSONObject对象使用 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转

Gson解析JsonObject和JsonArray

http://www.cnblogs.com/codingyuan/p/5837663.html Gson中重要的几个核心类: Gson.JsonParser.JsonObject.JsonArray. 下面就是解析的步骤: public void parserJsonArray(String strJson){ //创建一个Gson对象 Gson gson = new Gson(); //创建一个JsonParser JsonParser parser = new JsonParser();

JSONObject和JSONArray解析和构造json字符串

JSON-lib包(最关键的两个类分别是JSONObject和JSONArray)完成对json的构造和一些基本方法的使用. 二者区别: ①JSONObject构造的字符串是键值对形式(key:value),多个键值对间以英文逗号连接: ②JSONArray构造的字符串是数组形式([array1,array2,...]). 需要使用的包下载链接:http://pan.baidu.com/s/1o7MZ8X8 一.JSONObject的使用. (1)JSON字符串的两种构造方法: ①使用Java对

JSONObject和JSONArray是JDK的集合部分延伸

我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承.通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容.首先看一下JSONObject和JSONArray 的结构: 1 final class JSONObject extends AbstractJSON implements JSON, Map, Comparable 2 final class JSONArray extends Abstrac

JAVA中 JSONObject与JSONArray的使用

一.JAR包 需引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 二.JSONObject对象使用 //JSONObject对象的创建和数据的添加(key-value方式)    private static JSO