2011-03-24 49 views
2

这是我目前所做的调整我所有的价值。这是丑陋的,太重复了。修剪json数据的最佳方法是什么?

var strHTML = ''; 
$.getJSON('info.php', 
    function(data) { 
     $.each(data, function(i, item) { 
      strHTML += $.trim(item.fname) + 
         $.trim(item.lname) + 
         $.trim(item.address) + 
         $.trim(item.phone) + 
         ...(about 10 more of these); 
     }); 
    }); 

应该有更好的方法来做到这一点。

+0

有没有'$(项目)。每个(函数(J){strHTML中+ = $ .trim(此[J])}'??? – mplungjan 2011-03-24 17:42:15

+0

mplungjan不起作用,我需要灵活地连接我的html和这个,但是我把它留给了混乱的b/c。 – nolabel 2011-03-24 22:21:40

回答

1

for...in例如,具有hasOwnProperty

var obj = { 
    foo: ' bar', 
    blahblah: ' ahahaha ' 
}; 

var arr = []; 
for (key in obj) { 
    if (obj.hasOwnProperty(key)) { 
     arr.push($.trim(obj[key])); 
    } 
} 
alert(arr.join(',')); 
+0

非常接近。如何保留obj名称,例如arr.foo或arr.blahblah? – nolabel 2011-03-24 23:25:35

1

我想说你应该修剪PHP端的数据,因为它是你的PHP脚本生成它。

基本上:确保您的info.php脚本生成正确的数据。


在PHP中,您可以使用trim()函数。

如果您的数据存储在一个数组,你可以申请该功能使用array_map()功能阵列的所有项目:

$data = array_map('trim', $data); 


因此,我将添加PHP对这个问题的标记

+0

您好Martin,很好的建议,但是我现在无法触及服务器端这迫使我在客户端工作,如果数据库管理员首先修改了数据,它会更好! – nolabel 2011-03-24 22:12:31

0

如果你想要修剪项目的所有属性,你可以使用for(props in item){} -loop来遍历所有的属性。因为你可以在所有javascript对象上使用它,所以你可以创建一个函数来修改对象的所有属性。

相关问题