Converti stringa in oggetto JSON in Java

Rupam Yadav 12 ottobre 2023
  1. Usa JSONObject per convertire una stringa in un oggetto JSON in Java
  2. Utilizza Google Gson per convertire una stringa in un oggetto JSON in Java
  3. Usa Jackson per convertire una stringa in un oggetto JSON
Converti stringa in oggetto JSON in Java

In questo tutorial, discuteremo come convertire una stringa in un oggetto JSON in Java. Abbiamo diverse librerie disponibili per eseguire questa operazione.

Usa JSONObject per convertire una stringa in un oggetto JSON in Java

JSONObject può analizzare una stringa in un oggetto simile a una mappa. Memorizza coppie chiave-valore non ordinate. La libreria JSON-java, comunemente nota come org.json, viene utilizzata qui con la dipendenza Maven richiesta. La dipendenza Maven che abbiamo usato è data di seguito.

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

Per analizzare una stringa JSON in JSONObject, passiamo la stringa al costruttore come mostrato di seguito.

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());
    }
  }
}

Produzione:

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

Utilizza Google Gson per convertire una stringa in un oggetto JSON in Java

Google Gson è una libreria java per serializzare / deserializzare oggetti Java in JSON o viceversa. Può anche essere utilizzato per convertire la stringa Java nel suo oggetto JSON equivalente.

Di seguito viene fornita la dipendenza Maven richiesta per questa libreria.

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

In questo codice, creiamo prima un’istanza di Gson usando GsonBuilder chiamando il suo metodo create(). Possiamo anche abilitare varie impostazioni di configurazione su builder. Come mostrato di seguito, usiamo il suo metodo setPrettyPrinting(). Come suggerisce il nome, stampa piuttosto l’output JSON.

Successivamente abbiamo utilizzato il metodo fromJson di Gson Object, che analizza la stringa JSON nell’oggetto User. Il metodo toJson() utilizza Gson per riconvertire l’oggetto User nella stringa JSON. Pertanto la stringa str viene convertita in un oggetto JSON utilizzando la libreria 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 + "]";
  }
}

Produzione :

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

Usa Jackson per convertire una stringa in un oggetto JSON

Jackson è anche noto come libreria Java JSON. L’ObjectMapper viene utilizzato per mappare JSON in Java Object o Java Objects in JSON. La dipendenza Maven usata per questa libreria è mostrata di seguito.

 <!-- 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>

Jackson ha un modello ad albero incorporato per rappresentare l’oggetto JSON. JsonNode è la classe che rappresenta il modello ad albero. L’istanza ObjectMapper mapper analizza JSON in un modello di albero JsonNode chiamando 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();
    }
  }
}

Produzione:

node{"name":"John","age":21,"place":"Nevada"}
name: John, place: 21
Autore: Rupam Yadav
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

Articolo correlato - Java String

Articolo correlato - Java JSON