zoukankan      html  css  js  c++  java
  • jsonArray与 jsonObject区别与js取值

    一、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。

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

    JavaScript解析JSON

    **
    解析json数组即对JSONArray的遍历

    一、对于标准的json数组如:

    var result=[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}];
     

    进行遍历的时候,可以直接通过for循环遍历这个数组,有两种方法

    1.  
    for (var i = 0; i < result.length; i++) {
            //result[i]表示获得第i个json对象即JSONObject
            //result[i]通过.字段名称即可获得指定字段的值
            result[i].userName;
        }
    2.
    for(var i in result){
            //表示遍历数组,而i表示的是数组的下标值,
            //result[i]表示获得第i个json对象即JSONObject
            //result[i]通过.字段名称即可获得指定字段的值
            result[i].userName;
        }

    二、对于不标准的json数组如:

    var result={"datas":[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}]};

     

    进行遍历之前得先解析出标准的json数组格式即[{},{}]

    var data= result.datas;
    1.
     for (var i = 0; i < data.length; i++) {
            //data[i]表示获得第i个json对象即JSONObject
            //data[i]通过.字段名称即可获得指定字段的值
            data[i].userName;
        }
    2.
     for(var i in data){
            //表示遍历数组,而i表示的是数组的下标值,
            //data[i]表示获得第i个json对象即JSONObject
            //data[i]通过.字段名称即可获得指定字段的值
            data[i].userName;
        }

    **

    注意点:eval()方法的作用

    **
    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
    1. 一种为使用eval()函数。
    2. 使用Function对象来进行返回解析

  • 相关阅读:
    三次请求(读-改-读)引出nibernate 一级缓存
    算法竞赛入门经典第一、二章摘记
    uva 10905 Children's Game
    uva 11205 The broken pedometer
    uva 10160 Servicing stations
    uva 208 Firetruck
    uva 167 The Sultan's Successors
    zoj 1016 Parencodings
    uva 307 Sticks
    uva 216 Getting in Line
  • 原文地址:https://www.cnblogs.com/jokerjason/p/8118134.html
Copyright © 2011-2022 走看看