我需要填充一个JSON,其属性与对象的属性具有相同的名称。
MyObject:
{ idCliente: 4,
idAplicacionEmpresa: 1,
email: 'Jaa@jo.com',
nombre: 'Joaquin',
apellido: 'Diaz',
}
MyJSON:
{ sexo: '',
nombre: '',
apellido: '',
telefono: '',
documento: '',
provincia: '',
fechaNacimiento: '',
localidadResidencia: ''
}
仅填充匹配的属性。
我使用承诺从模板生成pdf,其中表单的字段与de json属性匹配,这是我的代码
TramitePdf.generatePdf = function (idTipoTramite, idCliente, callback) {
var cliente = TramitePdf.app.models.Cliente;
var modeloTipoTramite = TramitePdf.app.models.TipoTramite;
var pathModelo, pathCliente, tipoT, clienteActual;
modeloTipoTramite.findById(idTipoTramite)
.then(tipoTramite => {
this.pathModelo = `${__dirname}/../pdf/${tipoTramite.nombre}.pdf`;
this.pathCliente = `${__dirname}/../pdf/clientes/${idCliente}_${idTipoTramite}_${tipoTramite.nombre}.pdf`;
this.tipoT = tipoTramite;
this.clienteActual = cliente.findById(idCliente);
return this.clienteActual;
})
.then(cliente => {
pdfFiller.fillForm(this.pathModelo, this.pathCliente, JSON.parse(this.tipoT.template), function (err) {
callback(err, cliente);
});
})
.catch(err => {
callback(err);
});
};
有什么想法吗?
答案 0 :(得分:1)
只需:
Object.keys(someJson).forEach(el => {
if (typeof myJson[el] !== 'undefined') {
myJson[el] = someJson[el];
}
});
答案 1 :(得分:0)
你可以试试这个
let a = { idCliente: 4,
idAplicacionEmpresa: 1,
email: 'Jaa@jo.com',
nombre: 'Joaquin',
apellido: 'Diaz',
}
let b = { sexo: '',
nombre: '',
apellido: '',
telefono: '',
documento: '',
provincia: '',
fechaNacimiento: '',
localidadResidencia: ''
}
console.log(b,a)
let KeysOf_a = Object.keys(a);
for(let i = 0;i < KeysOf_a.length;i++){
if(b.hasOwnProperty(KeysOf_a[i])){
b[KeysOf_a[i]] = a[KeysOf_a[i]]
}
}
console.log(b,a)
&#13;