前端学习之——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"]}]  
--> 
原文地址:https://www.cnblogs.com/coder-wf/p/12185080.html