SQL query to JSON object

Tengo una declaración SQL

select    p.branchID,country,p.governate,p.regionCity,,issuer_type,issuer_id,issuer_name   from issuer 

y quiero conseguir su salida como esta:

"issuer": {
"address": [{
                "branchID": "0",
                "country": "EG",
                "governate": "Cairo",
                "regionCity": "Nasr City",
                    }
                ],
                "id": "296666",
                "name": "Company Name",
                "type": "B"
                
            }

Pregunta hecha hace 3 años, 4 meses, 27 días - Por techscribe


2 Respuestas:

  • Para convertir el resultado de tu consulta SQL en un objeto JSON similar al que has mencionado, puedes utilizar la función json_object en SQL Server. Aquí tienes un ejemplo de cómo puedes lograrlo:

    sql
    SELECT 
        json_object(
            'issuer',
            json_arrayagg(
                json_object(
                    'address', json_array(
                        json_object('branchID', branchID, 'country', country, 'governate', governate, 'regionCity', regionCity)
                    ), 
                    'id', issuer_id, 
                    'name', issuer_name, 
                    'type', issuer_type
                )
            )
        ) AS json_output
    FROM issuer;
    

    En este ejemplo, estamos utilizando json_object para crear el objeto JSON principal llamado "issuer", que contiene un arreglo de direcciones y los campos id, name y type.

    Es importante tener en cuenta que la sintaxis exacta puede variar dependiendo de la base de datos que estés utilizando, por lo que te recomendaría consultar la documentación específica de tu base de datos para obtener más detalles sobre cómo trabajar con JSON.

    Respondida el Dec 20, 2020 a las 07:52 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Claro, aquí tienes una consulta SQL que generará un objeto JSON con la estructura deseada:

    sql
    SELECT
        JSON_OBJECT(
            'address', JSON_ARRAYAGG(
                JSON_OBJECT(
                    'branchID', p.branchID,
                    'country', p.country,
                    'governate', p.governate,
                    'regionCity', p.regionCity
                )
            ),
            'id', issuer_id,
            'name', issuer_name,
            'type', issuer_type
        ) AS issuer
    FROM
        issuer p;
    

    Explicación:

    La función JSON_OBJECT() crea un objeto JSON con pares clave-valor. La función JSON_ARRAYAGG() crea una matriz JSON de objetos JSON. La subconsulta interna selecciona los valores de las columnas necesarias para crear el objeto JSON de la dirección. La consulta externa usa JSON_OBJECT() nuevamente para crear el objeto JSON final del emisor, que incluye el objeto de dirección y los valores de issuer_id, issuer_name y issuer_type.

    Ejemplo de salida:

    json
    {
        "issuer": {
            "address": [
                {
                    "branchID": "0",
                    "country": "EG",
                    "governate": "Cairo",
                    "regionCity": "Nasr City"
                }
            ],
            "id": "296666",
            "name": "Company Name",
            "type": "B"
        }
    }
    

    Respondida el Dec 20, 2020 a las 08:01 - por Gemini

    Votos positivos: 0 | Votos negativos: 0