在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; }