entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Concatenar dos JSONArray usando Taglib

Buenos días, estoy utilizando la librería de Json para java en donde meto un arreglo a un JsonArray

    JSONArray refarray = new JSONArray();
 JSONObject json = new JSONObject(); 

  while(rs_data.next())
  {
        json.put("cli_nombre", rs_datosPersonales.getString("cli_nombre"));
        json.put("cli_paterno", rs_datosPersonales.getString("cli_paterno"));

      refarray.put(json);

        json = new JSONObject();
  }

   String output = refarray.toString(); 

y tengo otro arreglo exactamente igual pero apunta a otra DB y solo cambio el nombre de las variables json2,refarray2,rs_data2, etc...

los output me imprimen algo asi

[{"cli_nombre":"ALEJANDRO","cli_paterno":"CASTILLO"}]

yo puedo accesar a este output desde JQuery

data[0].cli_nombre

pero lo que quiero es poder concatenar output y output2 dandole un nombre a cada arreglo

["Array1":{"cli_nombre":"ALEJANDRO","cli_paterno":"CASTILLO"},
  "Array2":{"cli_nombre":"ALEJANDRO","cli_paterno":"CASTILLO"}
]

y poder acceder desde JQuery asi

data.array1[0].cli_nombre

PD: se que se puede acceder a un multiple array, mi problema es como concatenar y darle indices a estos array, intente hacer un replace desde jsp al output

 salida = output.replace("[","[\"Produccion\":"); 
 salida2 = output2.replace("[","\"Asignación\":");

y asi al final imprimir los 2 para tener el formato que deseo, pero me salen errores.

alguna idea?

2 Respuestas

2votos

Y como siempre, una disculpa, siempre escribo preguntas y al final encuentro la solución

me base en esta pagina para validar el código json Json Validator
Dentro del validador coloque mis 2 output por separado y fui armando el array, despues

concatene las cadenas directamente pero antes de eso hice un replace

 String output = refarray.toString(); 
  String output2 = refarray2.toString();

  String salida  = output.replace("[","{\"Produccion\":[");
  String salida2 = output2.replace("[",", \"Asignacion\":[");
  String salida3 = salida2.replace("]","]}");

out.println(salida + salida3);

y al final pude acceder con JQuery

data["Asignacion"][0].cli_nombre

iba a pedir que me borraran la pregunta, pero creo que sería de mas ayuda dejarla, tal vez en un futuro a alguien le sirva un poco esto :)

0voto

Peter comentado

Al contrario, seguramente ayudas a alguien más con el mismo problema, así es que perfecto que te auto respondas con la solución. :)

Saludos.

1voto

Leonardo-Tadei Puntos227320

Hola Alejandro,

o no entiendo bien la pregunta, o la solución es muy simple: creá un objeto y asignale cada objeto del JSON a un elemento distinto:

var data = new Object();
data.array1 = refarray;
data.array2 = refarray2;

Te evitás tener que meter mano al string con en JSON, ya que cualquier error ahí corrompe la estructura.

Si no es esto, danos 2 o 3 ejemplos de cómo necestás acceder a la información para ver la estructura de datos que se puede usar.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta