js接收json总结 new Function,eval,new Array

①从json数据的形式来区分
a.json数据格式为 单条 ,如下
data = '{"id":108150,"avaliable":"Y","code":"0009","name":"test","parentId":0,"shortName":"test"}'
这时,可以通过  js的 eval  函数 和 new Function()  匿名函数来实现
        success: function(data){  
            //返回数据  
            var objFunc = new Function("return" + data)();  // new Function 方法  
            var objEval = eval("("+data+")"); // eval 函数方法    
            alert(objFunc.id+"--"+objEval.id); // 显示为 108150--108150  
        }  



②json 数据格式为 多条 ,如下
data =' [
{"id":100450,"code":"aaa","name":"性质1","memo":"aaaa"},
{"id":100451,"code":"bbb","name":"性质2","memo":"aaaa"},
{"id":100452,"code":"ccc","name":"性质3","memo":"备注备注123123123123"}
]'
这时 可以通过  new Array  数组来转换
        success: function(data){  
            //返回数据  
            var dataArr2 = new Array(); // 创建数组  
            dataArr2=dataArr2.concat(data);        // 合并数组  
            alert(dataArr2[0].id+"--"+dataArr2[0].name); //显示 100450--性质1   
        }  
附:
eval() 函数可将字符串转换为代码执行,并返回一个或多个值
eval调用时,实例为eval( "(  JavaScript 代码 )" )
var str = "function(){alert('a');}“;
str = eval("("+str+")");
str();

eval()的返回值遵循以下规则:
1.如果eval()的参数不是字符串,那么eval()将直接返回参数。
2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进行执行,并返回最后一行代码执行的结果。
3.如果字符串无法解析成合法的代码,eval()将抛出SyntaxError错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值