js读取json数据

js读取JSON的方法我接触到的有两种:

方法一:函数构造定义法返回
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//转换后的JSON对象
alert(obj.name);//json name

方法二:js中著名的eval函数
var strJSON = "{name:'json name'}";//得到的JSON
var obj = eval( "(" + strJSON + ")" );//转换后的JSON对象
alert(obj.name);//json name

第二种方法需要注意的是,对象表达式{'name':'json name'}必须用“()”扩住,否则
var strJSON = "{name:'json name'}";
var obj = eval(strJSON);
alert(obj.constructor);//String 构造函数
alert(obj.name);//undefine
必须把对象表达式扩起来eval执行才能生成一个匿名对象!

(参考)--------------------------------------------------------------------------

下面json官方的js,结合ajax来读取解释json结构的数据。

<script>

//直接声明json数据结构 
var myJSONObject = {"bindings": [ 
   {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, 
   {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, 
   {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} 

};

alert(myJSONObject["bindings"][0].method); //这里读取节点bindings中第一个数组位置method的值

也可以使用循环来读取

for(var key in myJSONObject){ 
alert(myJSONObject[key][0].regex)
}

</script>

下面是json官方的js文件

<script src="json2.js"></script>

// rtval的值:{"digg":[{"diggnum":"12","offnum":"0","pageviews":"680","username":"dodo"}]}

function callback(rtval)

{

var myJSONObject2=eval("("+rtval+")");
alert(myJSONObject2["digg"][0].diggnum)

}

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向良玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值