es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo manejar múltiples respuestas individuales en formato JSON

En realidad, estoy haciendo algunas pruebas en las que obtengo una respuesta de uno de nuestros endpoints que parece ser múltiples objetos JSON individuales y necesito convertirlos en una forma como una cadena o un solo objeto JSON para poder realizar algunas acciones sobre ellos.

Ejemplo de respuesta JSON:

{"user_name":"testUser","email":"test@test.com"}
{"country":"Australia","Gender":"Male"}
{"type":"Customer_Account","membership":"Annual"}

Aquí el problema es que no puedo realizar ninguna operación hasta que lo convierta a una cadena u objeto JSON.

Y no puedo controlar la respuesta ya que proviene de una aplicación de terceros.

¿Alguna idea de cómo convertirlo usando JavaScript o Java sería de gran ayuda?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para convertir varios objetos JSON individuales en un solo objeto JSON o cadena, puedes seguir el siguiente enfoque:

    En JavaScript:

    // asumiendo que la respuesta se guarda en una variable 'response'
    // dividir la respuesta por caracteres de salto de línea para obtener objetos JSON individuales como cadenas
    var jsonStrings = response.split('\n'); 
    
    // analizar cada cadena de objeto JSON y agregarlo a un array
    var jsonObjects = [];
    for(var i=0; i<jsonstrings.length; i++){="" jsonobjects.push(json.parse(jsonstrings[i]));="" }="" combinar="" todos="" los="" objetos="" json="" en="" un="" solo="" objeto="" json="" var="" combinedjsonobject="Object.assign({}," ...jsonobjects);="" convertir="" combinedjsonobject="" a="" una="" cadena="" json="" var="" jsonstring="JSON.stringify(combinedJsonObject);" ```="" **en="" java="" utilizando="" la="" biblioteca="" gson:**="" ```java="" asumiendo="" que="" la="" respuesta="" es="" una="" variable="" de="" tipo="" cadena="" string[]="" jsonstrings="response.split(&quot;\\r?\\n&quot;);" dividir="" la="" respuesta="" por="" caracteres="" de="" salto="" de="" línea="" para="" obtener="" objetos="" json="" individuales="" como="" cadenas="" gson="" gson="new" gson();="" jsonelement[]="" jsonelements="new" jsonelement[jsonstrings.length];="" crear="" un="" array="" para="" contener="" elementos="" json="" analizados="" analizar="" cada="" cadena="" de="" objeto="" json="" y="" agregarla="" al="" array="" jsonelements="" for(int="" i="0;"></jsonstrings.length;><jsonstrings.length; i++){="" jsonelements[i]="gson.fromJson(jsonStrings[i]," jsonelement.class);="" }="" jsonobject="" combinedjsonobject="new" jsonobject();="" crear="" un="" objeto="" json="" vacío="" para="" contener="" todos="" los="" objetos="" json="" agregar="" cada="" objeto="" json="" al="" combinedjsonobject="" for(jsonelement="" jsonelement="" :="" jsonelements){=""></jsonstrings.length;><string, jsonelement=""> entry : jsonElement.getAsJsonObject().entrySet()){
        combinedJsonObject.add(entry.getKey(), entry.getValue());
      }
    }
    
    String jsonString = gson.toJson(combinedJsonObject); // convertir combinedJsonObject a una cadena JSON
    

    Nota: En ambos ejemplos de JavaScript y Java, asumo que cada objeto JSON individual está representado en una sola línea en la respuesta. Si este no es el caso, es posible que debas modificar el código en consecuencia.</string,>

Comments are closed.