1

我从服务器收到一个 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",caption:"aText",id:"anID}.{url:"http://www.myurl.com/aNumber.jpg" ,caption:"aText",id:"anID"}...

我完全知道如何做到这一点,但我想知道是否有人知道是否可以做同样的事情来避免循环:JSON 在移动环境中真的很大(超过 10000 个项目),所以我希望有一些东西提高性能的魔法。

4

2 回答 2

1

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

于 2012-04-19T14:19:39.097 回答
0

您不能真正做到这一点,这里最好的解决方案是仅在需要时转换对象中的一个特定子数组。

反正循环执行的时间不长,最长的就是解析JSON String > Object。

对于你的循环,我会做类似的事情:

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]});
}
于 2012-04-19T14:25:24.320 回答