我有一个像下面的Json字符串
String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "
+ "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
+ "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
+ "\"command\" : \"VOID\"}";
我有一个String变量
String code = "9bPbN3";
问题,如何插入上面的字符串而不是在下面的地方硬编码。即,而不是9bPbN3,我想在那里使用变量代码。
String jsonRequestString = "{\"access_code\" : \"9bPbN3\" , "
非常感谢提前。
答案 0 :(得分:5)
如果您正在努力安排"
,那么正确的语法就是
String jsonRequestString = "{\"access_code\" : \""+code+"\" , ";
不要手动格式化Json字符串,而是需要花费很多精力,可以考虑使用库或util。
对于ex(将使用Jackson库):
Request re = new Request();
re.setCode(code);
...
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(re);
答案 1 :(得分:4)
String yourVariable = "xyz";
String jsonRequestString = "{\"access_code\" : \"" + yourVariable + "\" , "
+ "\"merchant_reference\" : \"123\", \"language\" : \"en\",\"id\" : \"149018273\","
+ "\"merchant_identifier\" : \"gKc\", \"signature\" : \"570fd712af47995468550bec2655d9e23cdb451d\", "
+ "\"command\" : \"VOID\"}";
答案 2 :(得分:3)
一般建议是避免用香草字符串制作json结构。而是使用json解析器/编写器库进行此操作。
结帐http://stleary.github.io/JSON-java/index.html / http://stleary.github.io/JSON-java/index.html。
有各种其他库和教程可用。
如果您不想这个方向,请使用"已知值"占位符并替代它。所以完整的json将包含" access_code" :" @@ ACCESS_CODE @@"并且您将用实际值替换占位符。所以你的json字符串将是某种字符串模板。
答案 3 :(得分:1)
另一个选择是使用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”所在的位置。