2

我以这种方式构造了一个 JSON 字符串,但无法将动态值传递给它

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 

请告诉我怎么做?

我已经尝试了多次试验和错误,但无法成功。

4

3 回答 3

3

使用字符串连接。

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" + 
               "}" ;
于 2013-06-20T12:06:55.103 回答
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

于 2013-06-20T12:08:36.390 回答
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.
于 2013-06-20T12:07:51.317 回答