使用自定义键和值将JSON转换为对象数组

时间:2012-04-19 14:15:54

标签: javascript

我从服务器收到一个JSON字符串:

{0:["aNumber","aText","anID"],1:["aNumber","aText","anID"]..

我必须详细说明这个字符串:

  1. aNumber与客户端字符串连接(例如,它变为“http://www.myurl.com/aNumber.jpg”);
  2. aNumber成为对象数组中url的值;
  3. aText成为同一数组中的标题值;
  4. anID成为同一数组中id的值;

    [{URL: “http://www.myurl.com/aNumber.jpg”,标题: “aText”,ID: “ANID}。{URL:” http://www.myurl.com/aNumber .JPG”,标题: “aText”,ID: “ANID”} ...

  5. 我完全知道如何做到这一点,但我想知道是否有人知道是否有可能做同样的事情避免循环:JSON在移动环境中真的很大(超过10000项),所以我是希望通过某种神奇的方式来提高表现。

2 个答案:

答案 0 :(得分:1)

尝试在移动环境中循环浏览10,000个项目。然后尝试100,000,然后尝试1,000,000。您可能会发现循环不是最大的性能瓶颈。

答案 1 :(得分:0)

你真的不能这样做,这里最好的解决方案是只在你需要的时候在对象中转换一个特定的子数组。

无论如何,循环执行的时间不是很长,最长的是解析JSON String>对象

对于你的循环,我会做出类似的东西:

obj=JSON.parse({0:["aNumber","aText","anID"],1:["aNumber","aText","anID"]});
arr=[];
for(i in obj){
  o=obj[i]; // improve performances on big objects
  arr.push({url: "http://www.myurl.com/"+ o[0] + ".jpg", caption:o[1], id:o[2]});
}