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.

Serializar un JSON utilizando GSON.

Estoy utilizando com.google.gson.JsonObject para enviar el json dentro de ‘parameters’ a un endpoint rest.

Como Parameters es una cadena json, estoy intentando hacer lo siguiente:

JsonObject json = new JsonObject();
json.addProperty(“options”, ??);

No estoy seguro de cómo hacerlo para cliente y opciones. ‘Opciones’ es un conjunto de Java, mientras que el cliente es un objeto.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar el objeto “customer” al JsonObject, puede crear un nuevo JsonObject para “customer” y agregarlo como una propiedad al JsonObject principal de esta manera:

    JsonObject customer = new JsonObject();
    customer.addProperty("firstName", "Temp");
    customer.addProperty("lastName", "Temp");
    
    JsonArray emailAddresses = new JsonArray();
    emailAddresses.add(new JsonPrimitive("temp1@temp.com"));
    customer.add("emailAddresses", emailAddresses);
    
    JsonObject address = new JsonObject();
    address.addProperty("street1", "123 W Temp St");
    address.addProperty("city", "Temp");
    address.addProperty("state", "Illinois");
    address.addProperty("zipCode", "61122");
    
    customer.add("address", address);
    
    json.add("customer", customer);
    

    Para agregar el conjunto de “options” como un JsonArray, puede iterar sobre el conjunto y agregar cada elemento como un JsonPrimitive al JsonArray de esta manera:

    Set<string> options = new HashSet<>();
    options.add("tv");
    
    JsonArray optionsArray = new JsonArray();
    for (String option : options) {
        optionsArray.add(new JsonPrimitive(option));
    }
    
    json.add("options", optionsArray);
    

    Esto creará un JsonObject con el objeto “customer” y el array “options” como propiedades, que luego puede enviar al punto final REST.

Comments are closed.