我以这种方式构造了一个JSON String,但是无法将动态值传递给它
String input = "{\r\n" +
" \"Level\": 0,\r\n" +
" \"Name\": \"String\",\r\n" +
" \"msgName\": \"String\",\r\n" +
" \"ActualMessage\": \"String\",\r\n" +
" \"TimeStamp\": \"/Date(-62135596800000-0000)/\"\r\n" +
"}" ;
String message = "this is value want to pass to the ActualMessage attribute " ;
I need to pass dynamic value to the ActaulMessage atribute
请告诉我怎么做?
我尝试过多次试验和错误,但无法成功。
答案 0 :(得分:2)
如何使用String.format()
呢?例如,要传递“动态值”,请在文本中声明占位符:
String input = "insert %s in the string"; // here %s is the placeholder
input = String.format(input, "value"); // replace %s with actual value
现在input
将包含字符串"insert value in the string"
。在您的示例中,更改此行:
" \"msgName\": \"String\",\r\n"
替换为:
" \"msgName\": \"%s\",\r\n"
现在您可以执行替换:
input = String.format(input, message);
请注意,format()
方法中的第一个参数有更多选项,并且您可以传递多个参数进行替换。请查看Formatter
课程的documentation。
答案 1 :(得分:1)
使用字符串连接。
String message = "this is value want to pass to the ActualMessage attribute " ;
String input = "{\r\n" +
"\"Level\": 0,\r\n" +
"\"Name\": \"String\",\r\n" +
"\"msgName\": \"String\",\r\n" +
"\"ActualMessage\": \"" + message + "\",\r\n" +
"\"TimeStamp\": \"/Date(-62135596800000-0000)/\"\r\n" +
"}" ;
答案 2 :(得分:1)
如果你想操纵Json,请考虑GSON。您的问题可以解决如下。
String input = "{\r\n" +
" \"Level\": 0,\r\n" +
" \"Name\": \"String\",\r\n" +
" \"msgName\": \"MessageName\",\r\n" +
" \"ActualMessage\": \"%s\",\r\n" +
" \"TimeStamp\": \"/Date(-62135596800000-0000)/\"\r\n" +
"}" ;
String message = "this is value want to pass to the ActualMessage attribute " ;
String output=String.format(input,message);
//this will replace %s with the content of message variable.