今天遇到了一个将json对象格式转换为js数组的问题,网上down了一下,发现只是对json进行了一些操作。在此写了一个小小的代码,以供有需要的人使用。
开门见山,先声明一个json对象数组,在此说一下,js中数组使用 " [ ] "区分的,而对象是由“ { } ” 区分,当然,这些问题各位大神肯定是都很了解了。
- var data=[{"url":"http://www.baidu.com","oldname":"baidu"},{"url":"http://www.sina.com.cn/","oldname":"新浪"}];
查了很多资料发现,并没有什么直接内置好的函数去将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);
eval()可以将json字符串转化为json数据格式,但是这不是必须的,就如同上面的例子,不过上面的例子确实比较简单,如果data是一个json字符串,使用“{}”开头和结尾,那么在js中,“{}” 中的内容,会被当做是代码块,那个时候必须使用eval将其强制的转化为代码块,关于eval的具体用法可以查看手册。