doubts with json / array nesting

0

I have this json

{
"MedPaciente": [
    {
        "ProdutoModel": {
            "LaboratorioModel": {
                "id_laboratorio": 7951,
                "nome": "BOEHRINGER INGELHEIM",
                "data_cad": "28/12/2017",
                "situacao": 1
            },
            "id_produto": 232,
            "id_laboratorio": 7951,
            "codbarras": "7896026300704",
            "nome": "ANADOR 500MG 2COMP ",
            "situacao": 1,
            "alldata": "ANADOR 500MG 2COMP ",
            "data_cad": "17/01/2001"
        },
        "id_med_paciente": 44,
        "id_empresa": 1,
        "id_consulta": 59,
        "id_paciente": 4,
        "id_produto": 232,
        "qtde_embalagem": 20,
        "dose_diaria": 2,
        "lote": "1231",
        "vencto": null,
        "crm": "1325",
        "uf_crm": null,
        "medico": "aluisio da silva reis",
        "dt_lancto": "2018-02-06T00:00:00",
        "termino": "2018-02-26T00:00:00",
        "tipo": "medicamento",
        "qtde": 2
    }
}

I need to leave it that way

{               
    "id_laboratorio": 7951,
    "nome": "BOEHRINGER INGELHEIM",
    "data_cad": "28/12/2017",
    "situacao": 1               
    "id_produto": 232,
    "id_laboratorio": 7951,
    "codbarras": "7896026300704",
    "nome": "ANADOR 500MG 2COMP ",
    "situacao": 1,
    "alldata": "ANADOR 500MG 2COMP ",
    "data_cad": "17/01/2001"            
    "id_med_paciente": 44,
    "id_empresa": 1,
    "id_consulta": 59,
    "id_paciente": 4,
    "id_produto": 232,
    "qtde_embalagem": 20,
    "dose_diaria": 2,
    "lote": "1231",
    "vencto": null,
    "crm": "1325",
    "uf_crm": null,
    "medico": "aluisio da silva reis",
    "dt_lancto": "2018-02-06T00:00:00",
    "termino": "2018-02-26T00:00:00",
    "tipo": "medicamento",
    "qtde": 2       
}

How can I do this?

    
asked by anonymous 17.02.2018 / 17:48

1 answer

1

Well, for one JSON object to be transformed into another like the one you proposed represented in the variable algumJSON :

var algumJSON = {
    "MedPaciente": [
    {
        "ProdutoModel": {
            "LaboratorioModel": {
                "id_laboratorio": 7951,
                "nome": "BOEHRINGER INGELHEIM",
                "data_cad": "28/12/2017",
                "situacao": 1
            },
            "id_produto": 232,
            "id_laboratorio": 7951,
            "codbarras": "7896026300704",
            "nome": "ANADOR 500MG 2COMP ",
            "situacao": 1,
            "alldata": "ANADOR 500MG 2COMP ",
            "data_cad": "17/01/2001"
        },
        "id_med_paciente": 44,
        "id_empresa": 1,
        "id_consulta": 59,
        "id_paciente": 4,
        "id_produto": 232,
        "qtde_embalagem": 20,
        "dose_diaria": 2,
        "lote": "1231",
        "vencto": null,
        "crm": "1325",
        "uf_crm": null,
        "medico": "aluisio da silva reis",
        "dt_lancto": "2018-02-06T00:00:00",
        "termino": "2018-02-26T00:00:00",
        "tipo": "medicamento",
        "qtde": 2
    },
        { ... }
        ]
};

I, using a forEach for each MedPaciente , would create an Array of objects ( meusObjs ) with variables received from this JSON:

var meusObjs = [];

algumJSON.MedPaciente.forEach(
    MP => {meusObjs.push({
            "id_laboratorio": MP.ProdutoModel.LaboratorioModel.id_laboratorio,
            "nome_prod_lab": MP.ProdutoModel.LaboratorioModel.nome,
            "data_cad_lab": MP.ProdutoModel.LaboratorioModel.data_cad,
            "situacao_lab": MP.ProdutoModel.LaboratorioModel.situacao,
            "id_produto": MP.ProdutoModel.id_produto,
            // "id_laboratorio": 7951,       {Este está duplicado}
            "codbarras": MP.ProdutoModel.codbarras,
            "nome_prod": MP.ProdutoModel.nome,
             "situacao_prod": MP.ProdutoModel.situacao,
             "alldata": MP.ProdutoModel.alldata,
             "data_cad": MP.ProdutoModel.data_cad,
             "id_med_paciente": MP.id_med_paciente,
             "id_empresa": MP.id_empresa,
             "id_consulta": MP.id_consulta,
             "id_paciente": MP.id_paciente,
             // "id_produto": 232,          {Este está duplicado}
             "qtde_embalagem": MP.qtde_embalagem,
             "dose_diaria": MP.dose_diaria,
             "lote": MP.lote,
             "vencto": MP.vencto,
             "crm": MP.crm,
             "uf_crm": MP.uf_crm,
             "medico": MP.medico,
             "dt_lancto": MP.dt_lancto,
             "termino": MP.termino,
             "tipo": MP.tipo,
             "qtde": MP.qtde
        })
    }
)

In this case you will also need to change some variable names based on your use case. For example, I changed the name of the variable nome to nome_prod_lab and nome_prod to not have the same name.

    
17.02.2018 / 19:24