js中json对象转换为array

来源:互联网 发布:java面向对象的代码 编辑:程序博客网 时间:2024/05/18 05:18

 今天遇到了一个将json对象格式转换为js数组的问题,网上down了一下,发现只是对json进行了一些操作。在此写了一个小小的代码,以供有需要的人使用。

开门见山,先声明一个json对象数组,在此说一下,js中数组使用 " [ ] "区分的,而对象是由“ { } ”区分,当然,这些问题各位大神肯定是都很了解了微笑

var data=[{"url":"http://www.baidu.com","oldname":"baidu"},{"url":"http://www.sina.com.cn/","oldname":"新浪"}];
这是一个典型的 json对象数组。个人认为在程序中这样的格式已经很方便了,但是还是有人喜欢使用array,这里不对这种情况进行探究,也不对json与纯js数组做过多的评价。

查了很多资料发现,并没有什么直接内置好的函数去将json数据转化为对象,但是我们可以通过对json对象数据的循环将其赋值到js的二维数组中,值得声明的是,js没有严格意义上面的二维数组,它需要进行再次的声明才可以使用,否则,浏览器会报错的骂人


function json_array(data){     var len=eval(data).length;     var arr=[];     for(var i=0;i<len;i++){  arr[i] =[]; //js中二维数组必须进行重复的声明,否则会undefind  arr[i]['url']=data[i].url;  arr[i]['oldname']=data[i].oldname;     }     return arr;  }json_array(data);
这个方法可以对json数组进行遍历,但是前提是你要清楚你的json对象的格式,以及你需要的数据结构。

eval()可以将json字符串转化为json数据格式,但是这不是必须的,就如同上面的例子,不过上面的例子确实比较简单,如果data是一个json字符串,使用“{}”开头和结尾,那么在js中,“{}” 中的内容,会被当做是代码块,那个时候必须使用eval将其强制的转化为代码块,关于eval的具体用法可以查看手册。





0 0
原创粉丝点击