zoukankan      html  css  js  c++  java
  • JSONObject和JSONArray区别及基本用法

    1.JSONObject : json对象,就是一个键对应一个值,数据是用 { } 来表示的,例如:{”id”:1 , “username”:”wp”}

    JSONArray:  json数组,数据是是由JSONObject构成的数组,用 [ { } , { } , ...... , { } ] 来表示,只不过数组里面的项也是json键值对格式的  

    2.JSONObject与JSONArray使用的场景区别;

    想通过键值对的形式获取数据,使用JSONObject。

    如果后台查询的是某个bean的list集合向前端页面传递,使用JSONArray。

    3.JSONObject与JSONArray 创建方法区别;

    //创建JsonObject第一种方法  

    JSONObject jsonObject = new JSONObject();        

    jsonObject.put("name", "xuhang");         j 

    System.out.println("jsonObject1:" + jsonObject);        

    //创建JsonObject第二种方法        

    HashMap<String, String> hashMap = new HashMap<String, String>();        

    hashMap.put("name", "xuhang");             

    System.out.println("jsonObjectJSONArray创建的方法

    //创建一个JsonArray方法1        

    JSONArray jsonArray = new JSONArray();        

    jsonArray.add(0, "xuhang");                   //JSONObject对象中添加键值对         

    jsonArray.add(1, "426");                         //JSONObject对象中添加键值对       

    jsonArray.add(2, "624");                          //JSONObject对象中添加键值对     

    System.out.println("jsonArray1:" + jsonArray);                

    //创建JsonArray方法2        

    ArrayList<String> arrayList = new ArrayList<String>();        

    arrayList.add("xuhang");                                //将JSONObject对象添加到Json数组中   

    arrayList.add("426");                                    //将JSONObject对象添加到Json数组中    

    arrayList.add("624");                                    //将JSONObject对象添加到Json数组中     

    System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));

    4.获取方式不同
    获取JSONObject中值:String userName = jsonObject.getString("UserName");//key值

    获取JSONArray中的值:String userName = arrayList.getString("2");//角标值

    5.解析JSON不同

    System.err.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");  
            String jsonString = "{"name":"xuhang","age":"27","workIn":"teacher","Array":["xuhang","33","tools"]}";
            //将Json字符串转为java对象
            JSONObject obj = JSONObject.fromObject(jsonString);
            //获取Object中的UserName
            if (obj.has("name")) {
                System.out.println("name:" + obj.getString("name"));
            }
            //获取ArrayObject
            if (obj.has("Array")) {
                JSONArray transitListArray = obj.getJSONArray("Array");
                for (int i = 0; i < transitListArray.size(); i++) {
                    System.out.print("Array:" + transitListArray.getString(i) + " ");
                }
            }

    举个例子说明,如下:

    [{name1:{name2:{name3:'value1',name4:'value2'}}},{}]  

    取出name4值过程步骤:1,将以上字符串转换为JSONArray对象;2,取出对象的第一项,JSONObject对象;3,取出name1的值JSONObject对象;4,取出name2的值JSONObject对象;5,取出name4的值value2。

    示例中json数组格式的字符串可以通过方法直接转换为JSONArray的格式:

    JSONArray.fromObject(String)

    JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//将结果转换成JSONArray对象的形式  
    JSONObject getJsonObj = getJsonArray.getJSONObject(0);//获取json数组中的第一项  
    String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4"); 

    一、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个JSONObject的JSONArray。

    可以看到一个很明显的区别,一个用的是 {  }  ,一个最外面用的是 [  ]  ;

    二、如何从字符串String获得JSONObject对象和JSONArray对象

              JSONObject  jsonObject  = new JSONObject ( String  str);

             JSONArray jsonArray = new JSONArray(String    str  ) ;

    三、如何从JSONArray中获得JSONObject对象

           大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样

                       JSONObject   jsonObject = (JSONObject)jsonArray.get(i);

                       JSONObject   jsonObject  =  jsonArray.getJSONObject(i) ;  

      两者都可。第一种注意转换 

    四、获取JSON内的数据

          int   jid= jsonObject.getInt ( "id" ) ;    //  这里的jid得到的数据就是123.

          String  jcourse=jsonObject.getString( " courseID") ;   // 这里的jcourse得到的数据就是huangt-test.

         Strirng jcourse = jsonObject.get("courseID").toString();

     五、一般地 为键值对

                            eg:{  name:"xm", value:"张三"}

                             String jname = null;

                             if(jsonObject.get("name").equals("xm")){

                              jname=jsonObject.get("value").toString();

                            }

                        

     六:  JSON.parse( str )    --> 把字符串转为JSON对象

             JSON.stringify( obj ) -->把对象解析为字符串

     
  • 相关阅读:
    【python实现卷积神经网络】池化层实现
    【python实现卷积神经网络】批量归一化层实现
    在CentOS Linux系统上,添加新的端口,启用ssh服务
    linux各文件夹的作用
    断网环境下利用pip安装Python离线安装包
    Python数据分析入门之pandas基础总结
    Git入门私房菜
    python处理json
    Json概述以及python对json的相关操作
    将Sublime Text 添加到鼠标右键菜单的教程方法
  • 原文地址:https://www.cnblogs.com/xianz666/p/13072142.html
Copyright © 2011-2022 走看看