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.
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);
String yourVariable = "xyz";
String jsonRequestString = "{\"access_code\" : \"" + yourVariable + "\" , "
+ "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
+ "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
+ "\"command\" : \"VOID\"}";
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.
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.