So konvertieren Sie einen String mit der gson-Bibliothek in JsonObject

Lesezeit: 3 Minuten

Benutzer-Avatar
Eugen

Bitte beraten Sie, wie man a umwandelt String zu JsonObject verwenden gson Bibliothek.

Was ich erfolglos mache:

String string = "abcde";
Gson gson = new Gson();
JsonObject json = new JsonObject();
json = gson.toJson(string); // Can't convert String to JsonObject

Benutzer-Avatar
eadjei

Sie können es in eine JavaBean konvertieren, wenn Sie Folgendes verwenden möchten:

 Gson gson = new GsonBuilder().setPrettyPrinting().create();
 gson.fromJson(jsonString, JavaBean.class)

Um JsonObject zu verwenden, das flexibler ist, verwenden Sie Folgendes:

String json = "{\"Success\":true,\"Message\":\"Invalid access token.\"}";
JsonParser jsonParser = new JsonParser();
JsonObject jo = (JsonObject)jsonParser.parse(json);
Assert.assertNotNull(jo);
Assert.assertTrue(jo.get("Success").getAsString());

Was dem Folgenden entspricht:

JsonElement jelem = gson.fromJson(json, JsonElement.class);
JsonObject jobj = jelem.getAsJsonObject();

  • “Assert” sind die zusätzlichen Sachen, es dient zu Testzwecken.

    – Gemeinde Mayani

    24. Juni 2014 um 13:16 Uhr


  • jsonParser.parse(json).getAsJsonObject();

    – Mike

    11. Oktober 2014 um 19:31 Uhr

  • JsonObject jo = jsonParser.parse(json).getAsJsonObject(); und Assert.assertTrue(jo.get("Success").getAsBoolean());

    – smac89

    12. Februar 2018 um 23:29 Uhr


  • JsonParser wurde seit dieser Antwort umstrukturiert. Sie sollten jetzt den Einzeiler verwenden JsonObject jsonObj = JsonParser.parseString(json).getAsJsonObject();

    – Quadratischer Goldfisch

    17. März um 18:17 Uhr

Benutzer-Avatar
Benutzer2285078

Um dies auf einfachere Weise zu tun, beachten Sie Folgendes:

JsonObject jsonObject = (new JsonParser()).parse(json).getAsJsonObject();

Benutzer-Avatar
CalvinChe

String string = "abcde"; // The String which Need To Be Converted
JsonObject convertedObject = new Gson().fromJson(string, JsonObject.class);

Ich mache das, und es hat funktioniert.

Benutzer-Avatar
Mattball

Sie müssen nicht verwenden JsonObject. Sie sollten Gson verwenden, um in/von JSON-Zeichenfolgen und Ihren eigenen Java-Objekten zu konvertieren.

Siehe die Gson-Benutzerhandbuch:

(Serialisierung)

Gson gson = new Gson();
gson.toJson(1);                   // prints 1
gson.toJson("abcd");              // prints "abcd"
gson.toJson(new Long(10));        // prints 10
int[] values = { 1 };
gson.toJson(values);              // prints [1]

(Deserialisierung)

int one = gson.fromJson("1", int.class);
Integer one = gson.fromJson("1", Integer.class);
Long one = gson.fromJson("1", Long.class);
Boolean false = gson.fromJson("false", Boolean.class);
String str = gson.fromJson("\"abc\"", String.class);
String anotherStr = gson.fromJson("[\"abc\"]", String.class)

Benutzer-Avatar
Triguna

Sieht so aus, als hätte die obige Antwort die Frage nicht vollständig beantwortet.

Ich denke, Sie suchen nach etwas wie dem Folgenden:

class TransactionResponse {

   String Success, Message;
   List<Response> Response;

}

TransactionResponse = new Gson().fromJson(response, TransactionResponse.class);

wo meine Antwort ist ungefähr so:

{"Success":false,"Message":"Invalid access token.","Response":null}

Wie Sie sehen können, sollte der Variablenname mit der Json-Zeichenfolgendarstellung des Schlüssels im Schlüsselwertpaar identisch sein. Dadurch wird Ihre gson-Zeichenfolge automatisch in JsonObject konvertiert.

  • Warum verwenden Sie Großbuchstaben für Member-Variablen? Warum verwenden Sie den Standardzugriffsmodifikator? Wenn Sie in der Antwort Großbuchstaben wünschen, verwenden Sie @SerializedName("Success") zum Beispiel stattdessen.

    – Simon Zettervall

    30. Oktober 2013 um 9:41 Uhr


Benutzer-Avatar
Draken

String emailData = {"to": "[email protected]","subject":"User details","body": "The user has completed his training"
}

// Java model class
public class EmailData {
    public String to;
    public String subject;
    public String body;
}

//Final Data
Gson gson = new Gson();  
EmailData emaildata = gson.fromJson(emailData, EmailData.class);

  • Warum verwenden Sie Großbuchstaben für Member-Variablen? Warum verwenden Sie den Standardzugriffsmodifikator? Wenn Sie in der Antwort Großbuchstaben wünschen, verwenden Sie @SerializedName("Success") zum Beispiel stattdessen.

    – Simon Zettervall

    30. Oktober 2013 um 9:41 Uhr


Benutzer-Avatar
Trinadh Koya

Gson gson = new Gson();
YourClass yourClassObject = new YourClass();
String jsonString = gson.toJson(yourClassObject);

1299680cookie-checkSo konvertieren Sie einen String mit der gson-Bibliothek in JsonObject

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy