使用数据库中的对象加载json模板

时间:2017-07-04 12:38:38

标签: javascript mysql node.js loopback

我需要填充一个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);
  });

};

有什么想法吗?

2 个答案:

答案 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;
&#13;
&#13;