webentwicklung-frage-antwort-db.com.de

Json String - Hinzufügen von Variablen zum String

Ich habe eine Json-Saite wie unten

 String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "
                          + "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
                          + "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
                          + "\"command\" : \"VOID\"}";

Ich habe eine String-Variable als

String code = "9bPbN3";

Frage, wie kann ich den obigen String einstecken, anstatt ihn an der unteren Stelle festzukodieren? d.h. anstelle von 9bPbN3 möchte ich dort den variablen Code verwenden.

   String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "

Vielen Dank im Voraus.

4
user2967948

Wenn Sie Schwierigkeiten haben, den " zu arrangieren, ist die Syntax korrekt

String jsonRequestString = "{\"access_code\" : \""+code+"\" , ";

Anstatt die Json-Zeichenfolge manuell zu formatieren, ist die Verwendung einer Bibliothek oder eines Dienstprogramms sehr aufwändig.

Zum Beispiel ( wird Jackson library verwenden):

Request re = new Request();
re.setCode(code);
...
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(re);
5
Suresh Atta
String yourVariable = "xyz";
String jsonRequestString = "{\"access_code\" : \"" + yourVariable + "\" , "
                      + "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
                      + "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
                      + "\"command\" : \"VOID\"}";
4
Ollie in PGH

Generell wird empfohlen, keine Json-Struktur aus Vanilla-Saiten herzustellen. Verwenden Sie stattdessen eine JSON-Parser/Writer-Bibliothek für diese Operationen.

Checkout http://stleary.github.io/JSON-Java/index.html / http://stleary.github.io/JSON-Java/index.html .

Dort stehen verschiedene andere Bibliotheken und Tutorials zur Verfügung.

Wenn Sie diese Richtung nicht einschlagen möchten, verwenden Sie einen Platzhalter für "Bekannte Werte" und ersetzen Sie ihn. Der vollständige json würde also "access_code" enthalten: "@@ ACCESS_CODE @@" und Sie würden den Platzhalter durch den tatsächlichen Wert ersetzen. Ihre JSON-Zeichenfolge wäre also eine Art Zeichenfolgenvorlage.

3
tweber

Eine andere Möglichkeit wäre, die Methode format wie folgt zu verwenden:

 String jsonRequestString = "{\"access_code\" : \"%s\" , "
                          + "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
                          + "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
                          + "\"command\" : \"VOID\"}";
String code = "9bPbN3";
String result = String.format(jsonRequestString, code);

Beachten Sie die "% s", die ich anstelle von "code" eingefügt habe. Wenn Sie die format-Methode mit code als Parameter aufrufen, wird sie dort platziert, wo sich "% s" befand.

1
Jerfov2