良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

js读取json数据

line-height: 26px; white-space: normal; margin-top: 0px; margin-bottom: 0.714285em; padding-top: 0px; padding-bottom: 0px; border: 0px; background-color: rgb(255, 255, 255);">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>


标签: js

作者:良玉 分类:JS 浏览:749 评论:0
留言列表
发表评论
来宾的头像