Я хочу поместить все свое содержимое Json в переменную String в формате ниже.
String inputJSON = "{
\"billingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},
\"shippingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},
\"personAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},
\"customerStatus\":\"\",
\"createdDate\":\""+((String)globalMap.get("Json.Date"))+"\"";
Могу ли я узнать, почему я получаю сообщение об ошибке при заполнении двойных кавычек? Я думаю, что вся строка завершена или заключена в двойные кавычки. Я хочу разместить свой json только в этом формате. Могу я узнать, чего не хватает или что я делаю неправильно?
Извините, неправильный язык. Смотрите другие ответы.




Вам нужно добавить "+" в конце каждой строки, чтобы соединить их правильным образом:
Эти 3 одинаковые:
String s = "abcdef";
String s = "abc"+"def";
String s = "abc"+
"def";
Итак, для вас пример:
String s =
"{ "+
"\"billingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"+
"\"shippingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"+
"\"personAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"+
"\"customerStatus\":\"\","+
"\"createdDate\":\""+((String)globalMap.get("Json.Date"))+"\"}";
Также вам не хватало } в конце, чтобы иметь действительную строку JSON
Если вы распечатаете строку выше, вы получите (после форматирования)
{
"billingAddress": {
"city": "",
"country": "",
"postalCode": "",
"state": "",
"streetAddress": ""
},
"shippingAddress": {
"city": "",
"country": "",
"postalCode": "",
"state": "",
"streetAddress": ""
},
"personAddress": {
"city": "",
"country": "",
"postalCode": "",
"state": "",
"streetAddress": ""
},
"customerStatus": "",
"createdDate": "pop"
}
К сожалению, Java не поддерживает многострочное объявление String. Вам нужно использовать + для объединения строк
String inputJSON = "{"
+ "\"billingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"
+ "\"shippingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"
+ "\"personAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"},"
+ "\"customerStatus\":\"\",\"createdDate\":\""+((String)globalMap.get("Json.Date"))+"\"";
Java не поддерживает многострочные строковые литералы (пока). Таким образом, каждая строка должна быть полной строкой, заключенной в двойные кавычки, и каждая строка должна быть объединена с помощью знака «+».
final String inputJSON = "{" +
"\"billingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"}," +
"\"shippingAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"}," +
"\"personAddress\":{\"city\":\"\",\"country\":\"\",\"postalCode\":\"\",\"state\":\"\",\"streetAddress\":\"\"}," +
"\"customerStatus\":\"\"," +
"\"createdDate\":\""+((String)globalMap.get("Json.Date"))+"\"";
Может быть, более читаемым:
final String inputJSON =
"{" +
" \"billingAddress\": {" +
" \"city\":\"\"," +
" \"country\":\"\"," +
" \"postalCode\":\"\"," +
" \"state\":\"\"," +
" \"streetAddress\":\"\"" +
" }," +
" \"shippingAddress\": {" +
" \"city\":\"\"," +
" \"country\":\"\"," +
" \"postalCode\":\"\"," +
" \"state\":\"\"," +
" \"streetAddress\":\"\"" +
" }," +
" \"personAddress\": {" +
" \"city\":\"\"," +
" \"country\":\"\"," +
" \"postalCode\":\"\"," +
" \"state\":\"\"," +
" \"streetAddress\":\"\"" +
" }," +
" \"customerStatus\":\"\"," +
" \"createdDate\": \"" + ((String)globalMap.get("Json.Date")) + "\"" +
"}";
В этом формате было легко увидеть, что закрывающий символ '}' также отсутствовал.
Удачи.
@FedericoklezCulloca, Подскажите пожалуйста, как должно быть на одном примере?