欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java json 对象操作

程序员文章站 2022-07-12 16:29:23
...

java json 对象操作

  • JSONObject 类必须引用的jar包
commons-beanutils-1.7.0.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging.jar
ezmorph-1.0.3.jar
json-lib-2.1-jdk15.jar
  • java 操作json需要引入以下类库:
import net.sf.json.JSONArray;  
import net.sf.json.JSONException;  
import net.sf.json.JSONObject; 

josn 的常用操作

package javaa;
import java.util.ArrayList;

import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; 
public class JsonObject {
     private static void testJsonBean() {
         /**
          * 
          * 创建java对象 
          */  
            Student student = new Student();  
            student.setId(1);  
            student.setName("李四");  
            student.setSex("man");  
            student.setAge(25);  
            student.setHobby(new String[] { "篮球", "上网", "跑步", "游戏" });

            /**
             *java对象转换为json对象,并获取json对象属性
             */
            JSONObject jsonObject = JSONObject.fromObject(student);
            System.out.println(jsonObject.toString());
            //获取jsonObject对象的属性
            System.out.println(jsonObject.getString("id"));
            System.out.println(jsonObject.getJSONArray("hobby"));
            /**
             * json对象转换成java对象,并获取对象属性
             */
            Student student2 = (Student) JSONObject.toBean(jsonObject,Student.class);
            System.out.println(student2);

            Student student3 = new Student();
            student3.setAge(40);
            student3.setId(2);
            student3.setName("zane");
            student3.setSex("female");
            student3.setHobby(new String[]{"rnning","jogging"});

            ArrayList<Student> list = new ArrayList<Student>();
            list.add(student);
            list.add(student3);
            /**
             * 将list转化为jsonarray
             */
            JSONArray jsonArray = JSONArray.fromObject(list);
            System.out.println(jsonArray.toString());

            /**
             * jsonArray 转化为list
             */
            List<Student> list2 = ((List) JSONArray.toCollection(jsonArray,Student.class));
            System.out.println(list2);        
     }

    public static void main(String[] args) {
        /**
         * 新建JSONObject()对象
         */
         JSONObject jsonObj = new JSONObject();  
         jsonObj.put("id", 1);  
         jsonObj.put("name", "张勇");  
         jsonObj.put("sex", "男");  
         jsonObj.put("age", 24); 
         jsonObj.put("hobby", new String[]{"上网","游戏","跑步","音乐"});
         System.out.println(jsonObj.toString());
          /**
           * 向JSONObject对象中添加元素
           */
         jsonObj.element("address", "xidian");
         System.out.println(jsonObj.toString());

         /**
          * 将JSONObject对象转化为Student对象
          */
         Student student = (Student) JSONObject.toBean(jsonObj,Student.class);
         System.out.println(student);

         JsonObject.testJsonBean();

    }

}

JSONObject 和JSONArray的使用

  1. JSONObject 和JSONArray的区别
    • JSONObject的数据是用 { } 来表示的,例如: { “id” : “123”, “courseID” : “huangt-test”, “title” : “提交作业”, “content” : null }
    • JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , …… , { } ] 来表示,例如: [ { “id” : “123”, “courseID” : “huangt-test”, “title” : “提交作业” } , { “content” : null, “beginTime” : 1398873600000 “endTime” } ]
  2. 如何从字符串String获得JSONObject对象和JSONArray对象
JSONObject  jsonObject  = new JSONObject ( String  str);
JSONArray jsonArray = new JSONArray(String    str  ) ;
  1. 如何从JSONArray 中获取JSONObject
    大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样
JSONObject   jsonObject  =  jsonArray.getJSONObject(i);  
  1. 获取json中的数据
int   mid= jsonObject.getInt ( "id" ) ;   
String  mcourse=jsonObject.getString( " courseID") ;