2013-06-20 3 views
2

Я построил JSON String Это так, но не в состоянии передать динамические значения к немуКак передать динамическое значение в 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 

Пожалуйста, скажите мне, как?

Я пробовал количество проб и ошибок, но не смог добиться успеха.

+0

Имейте объект, который создает сообщение JSON и владеет динамическими данными, вводит его для вас. – duffymo

+0

«Пропустить динамическое значение», вы имеете в виду templating - в какой-то момент вы хотите поместить * значение * 'message' в определенное место внутри строки JSON; или вы имеете в виду привязку, - что вы хотите каким-то образом связать переменную * '' 'сообщения, чтобы в течение времени с изменением значения переменной строковое значение JSON' input' менялось, чтобы отразить это? – Nate

ответ

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" + 
       "}" ; 
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. 
1

Как насчет использования 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() имеет намного больше опций и что вы можете передать более одного аргумента, который нужно заменить. Взгляните на documentation на класс Formatter.

+0

как насчет 'json'? –

+0

Я показываю, как выполнить подстановку строк вообще, вход ФП в вопросе - это просто строка, поэтому она будет работать одинаково –

Смежные вопросы