在日常的開發(fā)中,我們常常需要將兩個(gè)json對象合并成一個(gè)。而在fast-json-parse模塊中,提供了一個(gè)函數(shù)將兩個(gè)json對象合并:Object.assign。
const json1 = {"name":"Tom","age":18}; const json2 = {"gender":"male","height":1.8}; const mergedJson = Object.assign(json1, json2); console.log(mergedJson);
使用Object.assign函數(shù)可以將json2對象合并到j(luò)son1對象中,并返回合并后的json對象。如果json1和json2中有相同的屬性,則json2的屬性值將覆蓋json1的屬性值。合并后的對象可以存入數(shù)據(jù)庫,或者用于其他場景的數(shù)據(jù)處理。
需要注意的是,Object.assign函數(shù)是淺拷貝,如果待合并的對象中有嵌套的對象,修改嵌套的對象將會影響到原始的對象。如果需要深拷貝,可以使用JSON.parse和JSON.stringify函數(shù):
const json1 = {"name":"Tom","age":18,"location":{"province":"Hubei","city":"Wuhan"}}; const json2 = {"gender":"male","height":1.8,"location":{"province":"Hunan"}}; const mergedJson = JSON.parse(JSON.stringify(json1)); for(let key in json2){ if(json2.hasOwnProperty(key)){ if(typeof json2[key] === 'object'){ mergedJson[key] = JSON.parse(JSON.stringify(json2[key])); continue; } mergedJson[key] = json2[key]; } } console.log(mergedJson);
以上代碼使用JSON.parse和JSON.stringify函數(shù)進(jìn)行了深拷貝,然后在for循環(huán)中遍歷json2對象,如果是對象,則進(jìn)行深拷貝;否則直接將屬性合并到合并后的對象中。
總之,在fast-json-parse模塊中,使用Object.assign函數(shù)可以輕松地將兩個(gè)json對象合并成一個(gè)。如果需要深拷貝,則可以使用JSON.parse和JSON.stringify函數(shù)組合使用。