以下のようなJson文字列があります
String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "
+ "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
+ "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
+ "\"command\" : \"VOID\"}";
私は文字列変数を持っています
String code = "9bPbN3";
質問、上の文字列を下の場所にハードコーディングする代わりにどのようにプラグインするのですか?つまり、9bPbN3の代わりに、変数コードを使用します。
String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "
よろしくお願いします。
"
の配置に苦労している場合、正しい構文は次のとおりです。
String jsonRequestString = "{\"access_code\" : \""+code+"\" , ";
多大な労力を必要とするJson文字列を手動でフォーマットする代わりに、ライブラリまたはユーティリティの使用を検討してください。
Ex(going to use Jackson library)の場合:
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\"}";
一般的なアドバイスは、バニラ文字列からjson構造を作成しないようにすることです。代わりに、この操作にはjsonパーサー/ライターライブラリを使用してください。
チェックアウト http://stleary.github.io/JSON-Java/index.html / http://stleary.github.io/JSON-Java/index.html 。
他にもさまざまなライブラリとチュートリアルがあります。
この方向に進みたくない場合は、「既知の値」のプレースホルダーを使用して置き換えます。したがって、完全なjsonには "access_code": "@@ ACCESS_CODE @@"が含まれ、プレースホルダーを実際の値に置き換えます。したがって、json文字列はある種の文字列テンプレートになります。
別のオプションは、次のようにformat
メソッドを使用することです。
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);
code
が行く場所に私が置いた "%s"に注意してください。 format
をパラメータとしてcode
メソッドを呼び出すと、「%s」があった場所に配置されます。