zoukankan      html  css  js  c++  java
  • 前端学习之——js解析json数组

    一、对于标准的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;
        }

    注意:在前端解析后端传过来的字符串有两种方法:

      1.  eval()

           2.JSON.parse(),   jquery的底层 $.parseJSON()用的还是JSON.parse();

    前端拼接json字符串:

    <script>  
          
        var  params = [];  
        for(var i = 0; i < 3; i++){  
            var param = [];  
            param.push("one");  
            param.push("two");  
            param.push("three");  
            params.push({"group":i,"param":param});  
        }  
          
        var json = JSON.stringify(params);  
        alert(json);  
          
        var jsonElem = document.getElementById("json");  
        jsonElem.innerHTML = json;  
          
    </script>  
      
    <!--  
        组成的json串:  
        [{"group":0,"param":["one","two","three"]},{"group":1,"param":["one","two","three"]},{"group":2,"param":["one","two","three"]}]  
    --> 
  • 相关阅读:
    CSAcademy Or Problem
    BZOJ 4516 [Sdoi2016] 生成魔咒
    SPOJ7258 SUBLEX
    SPOJ1812 LCS2
    SPOJ1811 LCS
    SPOJ8222 NSUBSTR
    洛谷3804 【模板】后缀自动机
    SPOJ287 NETADMIN
    SPOJ1693 COCONUTS
    BZOJ5329 SDOI2018 战略游戏
  • 原文地址:https://www.cnblogs.com/coder-wf/p/12185080.html
Copyright © 2011-2022 走看看