String in JSON-Objekt umwandeln in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von JSONObject zum Konvertieren einer Zeichenkette in ein JSON-Objekt in Java
  2. Google Gson zum Konvertieren einer Zeichenkette in ein JSON-Objekt in Java verwenden
  3. Verwenden von Jackson zum Konvertieren einer Zeichenkette in ein JSON-Objekt
String in JSON-Objekt umwandeln in Java

In diesem Tutorial werden wir besprechen, wie man einen String in ein JSON-Objekt in Java konvertiert. Es stehen verschiedene Bibliotheken zur Verfügung, um diese Aufgabe zu erfüllen.

Verwenden von JSONObject zum Konvertieren einer Zeichenkette in ein JSON-Objekt in Java

JSONObject kann eine Zeichenkette in ein Map-ähnliches Objekt parsen. Es speichert ungeordnete Schlüssel-Werte-Paare. Die JSON-Java-Bibliothek, allgemein bekannt als org.json, wird hier mit der erforderlichen Maven-Abhängigkeit verwendet. Die von uns verwendete Maven-Abhängigkeit ist unten angegeben.

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

Um einen JSON-String in ein JSONObject zu parsen, übergeben wir den String an den Konstruktor wie unten gezeigt.

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

Ausgabe:

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

Google Gson zum Konvertieren einer Zeichenkette in ein JSON-Objekt in Java verwenden

Google Gson ist eine Java-Bibliothek zur Serialisierung/Deserialisierung von Java-Objekten in JSON oder umgekehrt. Sie kann auch verwendet werden, um einen Java-String in sein entsprechendes JSON-Objekt zu konvertieren.

Die Maven-Abhängigkeit, die für diese Bibliothek benötigt wird, ist unten angegeben.

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

In diesem Code erstellen wir zunächst eine Instanz von Gson unter Verwendung des GsonBuilders, indem wir dessen Methode create() aufrufen. Wir können auch verschiedene Konfigurationseinstellungen für den builder aktivieren. Wie unten gezeigt, verwenden wir seine Methode setPrettyPrinting(). Wie der Name schon sagt, druckt sie die JSON-Ausgabe hübsch aus.

Später verwenden wir die fromJson-Methode von Gson Object, die den JSON-String in das User-Objekt parst. Die Methode toJson() verwendet Gson, um das User-Objekt zurück in den JSON-String zu konvertieren. Somit wird der String str mit Hilfe der Gson-Bibliothek in ein JSON-Objekt umgewandelt.

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 + "]";
  }
}

Ausgabe:

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

Verwenden von Jackson zum Konvertieren einer Zeichenkette in ein JSON-Objekt

Jackson ist auch bekannt als die Java JSON-Bibliothek. Der ObjectMapper wird verwendet, um JSON in Java Objects oder Java Objects in JSON zu mappen. Die für diese Bibliothek verwendete Maven-Abhängigkeit ist unten dargestellt.

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

Der Jackson hat ein eingebautes Baummodell zur Darstellung von JSON-Objekten. JsonNode ist die Klasse, die das Baummodell repräsentiert. Die ObjectMapper-Instanz mapper parst JSON in ein JsonNode-Baummodell durch den Aufruf von 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();
    }
  }
}

Ausgabe:

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

Verwandter Artikel - Java String

Verwandter Artikel - Java JSON