js解析json数据

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

一、使用eval()函数

系统后台代码

        /// <summary>
        /// 获取登录信息
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult GetUserinfo()
        {
            var userinfo = new
            {
                userid = Session[UserID.ToString()],               
                UserName = Session[UserName.ToString()]
            };

            return Content(userinfo.ToJson());
        }

eval解析

function inituserinfo() {
    $.ajax({
        type: "post",
        url: "/***/***/GetUserinfo", //你后台请求URL地址
        success: function (data) {
            var ajaxobj = eval("(" + data + ")");
            var uid = ajaxobj.userid;//用户ID
            var uname = ajaxobj.UserName;//用户名称
        }
    });
}

 JS解析Json 数组

二、解析json数组即对JSONArray的遍历

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

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

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

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

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

 

posted @ 2018-06-26 10:10  恋上微笑的天使  阅读(850)  评论(0编辑  收藏  举报