2011-03-24 76 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對象上使用它,所以你可以創建一個函數來修改對象的所有屬性。

相關問題