Convertir cadena en objeto JSON en Java

Rupam Yadav 12 octubre 2023
  1. Usar JSONObject para convertir una cadena en un objeto JSON en Java
  2. Usar Google Gson para convertir una cadena a objeto JSON en Java
  3. Usa Jackson para convertir una cadena en un objeto JSON
Convertir cadena en objeto JSON en Java

En este tutorial, vamos a discutir cómo convertir una cadena en un objeto JSON en Java. Tenemos diferentes bibliotecas disponibles para realizar esta tarea.

Usar JSONObject para convertir una cadena en un objeto JSON en Java

JSONObject puede analizar una cadena en un objeto parecido a un mapa. Almacena pares clave-valor no ordenados. La biblioteca JSON-java, comúnmente conocida como org.json, se usa aquí con la dependencia de los hombres. La dependencia maven que usamos se da a continuación.

 <!-- https://mvnrepository.com/artifact/org.json/json -->
 <dependency>           
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20201115</version>
 </dependency>

Para analizar una cadena JSON a JSONObject, le pasamos la cadena al constructor como se muestra a continuación.

import org.json.JSONException;
import org.json.JSONObject;

public class StringToJsonObject {
  public static void main(String[] args) {
    try {
      String str = "{\"name\":\"John\",\"age\":\"30\"}";
      JSONObject jsonObject = new JSONObject(str);
      System.out.println("OBJECT : " + jsonObject.toString());
    } catch (JSONException err) {
      System.out.println("Exception : " + err.toString());
    }
  }
}

Resultado:

OBJECT : {"age":"30","name":"John"}

Usar Google Gson para convertir una cadena a objeto JSON en Java

Google Gson es una biblioteca java para serializar/deserializar objetos Java a JSON o viceversa. También se puede usar para convertir una cadena de Java en su equivalente en un objeto JSON.

La dependencia maven que se requiere para esta biblioteca se da a continuación.

 <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
 </dependency>

En este código, primero creamos una instancia de Gson usando GsonBuilder llamando a su método create(). También podemos habilitar varios ajustes de configuración en builder. Como se muestra a continuación, usamos su método setPrettyPrinting(). Como su nombre lo sugiere, imprime bastante bien la salida de JSON.

Más tarde usamos el método fromJson de Gson Object, que analiza la cadena JSON en el objeto User. El método toJson() utiliza Gson para convertir el objeto User en la cadena JSON. Así, la cadena str se convierte en un objeto JSON usando la biblioteca Gson.

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonIOException;
public class StringToJsonObject {
  public static void main(String[] args) {
    try {
      String str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";

      GsonBuilder builder = new GsonBuilder();
      builder.setPrettyPrinting();
      Gson gson = builder.create();
      User user = gson.fromJson(str, User.class);

      System.out.println(user.ShowAsString());

      str = gson.toJson(user);
      System.out.println("User Object as string : " + str);

    } catch (JsonIOException err) {
      System.out.println("Exception : " + err.toString());
    }
  }
}

class User {
  public String name;
  public int age;
  public String place;
  public String ShowAsString() {
    return "User [" + name + ", " + age + ", " + place + "]";
  }
}

Resultado:

User[John, 21, Nevada] User Object as string : {
  "name" : "John", "age" : 21, "place" : "Nevada"
}

Usa Jackson para convertir una cadena en un objeto JSON

Jackson es también conocido como la biblioteca de Java JSON. El ObjectMapper se usa para mapear JSON en objetos de Java o los objetos de Java en JSON. La dependencia maven utilizada para esta biblioteca se muestra a continuación.

 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.11.3</version>
  </dependency>

El Jackson tiene un modelo de árbol incorporado para representar el objeto JSON. JsonNode es la clase que representa el modelo de árbol. La instancia ObjectMapper mapper analiza JSON en un modelo de árbol JsonNode llamando a readTree().

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class StringToJsonObject {
  public static void main(String[] args) {
    String json_str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
    ObjectMapper mapper = new ObjectMapper();
    try {
      JsonNode node = mapper.readTree(json_str);
      String name = node.get("name").asText();
      String place = node.get("age").asText();
      System.out.println("node" + node);
      System.out.println("name: " + name + ", place: " + place);
    } catch (JsonProcessingException e) {
      e.printStackTrace();
    }
  }
}

Resultado:

node{"name":"John","age":21,"place":"Nevada"}
name: John, place: 21
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java String

Artículo relacionado - Java JSON