2017-06-16 81 views

回答

1

刪除您的對象的屬性將其刪除

// Once 
delete server.events[0].data; 

// Loop 
for (var i = 0; i < server.events.length; i++) 
    delete server.events[i].data; 


function customParse(str) { 
    var result = JSON.parse(str); 
    for (var i = 0; i < result.server.events.length; i++) 
     delete result.server.events[i].data; 

    return result; 
} 
+0

或使用'delete'? –

+0

將其設置爲* undefined *不會從對象中刪除**字段。 –

1

嘗試使用刪除

delete(server.events[0].data) 
+0

有點偏離主題。我們在解析JSON時如何移除數據?我的意思是,我們是否每次都手動刪除'data',或者有沒有更好的方式我不知道? – Suhaib

+0

你的意思是說你想從每個事件中刪除數據的權利? –

+0

我的意思是,每次我調用這個代碼'var json = JSON.parse(url/json)','var json'都有'data'。你怎麼問JSON而不採取'數據' – Suhaib

1

您可以使用刪除關鍵字,像這樣;

delete server.events[0].data; 

更新關於評論問題答案;

當你只需要刪除幾個字段,那麼是的,這是它的方式。但是,也可以通過將對象重新映射到新對象來轉換該對象。這允許創建一個沒有過時字段的新對象,並可能爲您的密鑰選擇新名稱。 一個小例子:

var items = {server: {events: [{data: [], paging: {}}]}}; 
 
var newEventMapping = items.server.events.map(item => ({ 
 
    myPaging: item.paging 
 
})); 
 
console.log(newEventMapping); 
 

 
items.server.events = newEventMapping; 
 

 
console.log(items);

+0

謝謝,有點偏離主題。我們在解析JSON時如何移除數據?我的意思是,我們手動刪除'data'還是有更好的方法,像npm模塊? – Suhaib

+0

太棒了。謝謝 – Suhaib

0
function removeData(obj){ 
    for(var key in obj){ 
    if(key == 'data') delete obj[key]; 
    if(typeof obj[key] == 'object') removeData(obj[key]); 
    } 
} 
+0

JSON結構似乎不需要遞歸函數。 – EoiFirst

+0

雖然這段代碼可能會回答這個問題,但提供關於如何解決問題和/或爲什麼解決問題的額外上下文會提高答案的長期價值。 – Badacadabra