js中json对象转换为array

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

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

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

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


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

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


猜你喜欢

转载自blog.csdn.net/weixin_42119735/article/details/80665819