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

    关于两者区别:可以直接参考这几位写的

    转发自:https://blog.csdn.net/Xxacker/article/details/84949591

    JSON(一):JSONObject和JSONArray区别及基本用法
    一、JSONObject和JSONArray的数据表示形式
    JSONObject的数据是用 { } 来表示的
    JSONObject   jsonObject = 
    { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null  }  


    JSONArray是由JSONObject构成的数组,用 [ { } , { } , … , { } ] 来表示
    JSONArray jsonArray3 = [ 
        {  "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();

    2. https://www.cnblogs.com/xuanbo/p/6913585.html

    JSONObject和JSONArray区别及基本用法

    一、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 ) -->把对象解析为字符串

    3. 遍历其中的list或者map: https://blog.csdn.net/soicant/article/details/79318181

    var list1 = ["number","name"];
    var list2 = ["36","Crown","15","Faker","Swift","68","Dandy"];
    var map_demo = { name: "John", lang: "JS" };

    1.最常用的for循环

    for(var i=0;i<list2.length;i++){
            console.info(i +":"+ list2 [i]);
    }

    改进:这里可以将list2.length提出来,不用每次计算长度,效率更高一些,such as:

    var len=list2.length;
    for(var i=0;i<len;i++){
            console.info(i +":"+ list2 [i]);

    }

    小结:很常见也很常用,效率也不差,但不能遍历map。

    2.for...in...遍历List/map

    //遍历map
    for(var key in map_demo){
            console.info(key+":"+map_demo[key]);
    }
    //遍历List
    for(var index in list2){
            console.info(index+":"+list2[index]);

    }

    小结:对于List来说,能不用for...in就不要用,效率低下。

    3.forEach遍历List

    list2.forEach(function (element, index, array) {
            console.info(element); //当前元素的值
            console.info(index);   //当前下标
            console.info(array);  //数组本身 

    });

    小结:和for循环效率差不多。

    4.$.each()遍历List/map

    //遍历List
    $.each(list2,function(index,items){
            console.info(index+":"+items);
    });
    //遍历map
    $.each(map_demo,function(key,value){
            console.info("key: " + key + ", Value: " + value );

    })

    5.$.map()遍历List/map

    //遍历List
    var new_list = $.map(list2,function(items,index){
            return items+"!";
    })
    console.info(new_list);
        
    //遍历map
    $.map(map_demo,function(key,value){  
        console.log(key+":"+value);  

    }); 

    小结:$.map()写法和$.each()类似,但对list的遍历时,参数顺序和$.each()是相反的,并且可以带返回值。对map的遍历和$.each()一样

  • 相关阅读:
    剑指offer编程题66道题 26-35
    剑指offer编程题66道题 1-25
    springboot的自动配置
    用智能的编译器来防错
    实现迭代器的捷径
    结束C#2的讲解:最后的一些特性
    进入快速委托通道
    可空类型
    用泛型实现参数化类型
    C#1所搭建的核心基础
  • 原文地址:https://www.cnblogs.com/yangqqq/p/13344459.html
Copyright © 2011-2022 走看看