您的位置:首页 > Web前端 > JavaScript

Js读取json数据 && 循环读取JSON数据

2012-04-04 19:17 537 查看
服务端向客户端返回了一串JSON格式的数据。在有些时候,因为某些特殊的原因我们不知道原始的key值,因此我们此时无法象正常一样通过key值,来获取value值。这时我们必须循环读取JSON对象数据。废话少说,来看例子。
  服务端后台返回到客户端的JSON格式字符串:var str = '[{"uname":"王强","day":"2010/06/17"},{"uname":"王海云","day":"2010/06/11"}]';

  我们把它转换成JSON对象:var jsonList=eval("("+str+")");这时候如果以用断点跟踪查看这个jsonList对象,其实你会发现,他的长度为2,即jsonList.length=2。它的每一项都是一个单独的JSON对象。请看下图:  



  这时候假设我们不知道"uname"和"day"这两个key值,我们开始对jsonList执行循环操作。

  for(var i=0;i<jsonList.length;i++){

    for(var key in jsonList[i]){

  alert("key:"+key+",value:"+jsonList[i][key]);

}

  }

  这样我们就可以轻松的获取我所需要的key值和value值了

示例如下:

<script type="text/javascript" language="javascript">

var languages = {

cn:{

lang:'ch',

name:"中文"

},

en:{

lang:"英文",

name:"en"

}

};

document.write(languages.cn.name);

</script>
=====================================================================

请问有没有详细的js读取json的例子方法

//根据city获得name

function getNameByCity(city)

{

var cityName =

{

"0556":"安庆市",

"0372":"安阳市",

};

return cityName[city];

}

=====================================================================

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执行才能生成一个匿名对象!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: