У меня есть строка, которая является массивом JSON, но в ней есть символы, которые мне не нужны: некоторые "
и все \
Есть строка: ["{\"id\":1,\"tel\":526833,\"date\":\"13/12\",\"message\":\"Test1\"}","{\"id\":2,\"tel\":526834,\"date\":\"13/12\",\"message\":\"Test2\"}"]
и я хочу, чтобы это было так: [{"id":1,"tel":526833,"date":"13/12","message":"Test1"}","{"id":2,"tel":526834,"date":"13/12","message":"Test2"}]
Я избавился от первого и последнего "
, выполнив
jsonResp = jsonResp.replaceAll("\"[{]", "{");
jsonResp = jsonResp.replaceAll("[}]\"", "}");
, и теперь мне нужно стереть\
, я пытаюсь сделать что-то вроде jsonResp = jsonResp.replaceAll("\\", "");
, но в моей IDE написано «Неверная / неподдерживаемая escape-последовательность».
Вот мой полный код, если вы хотите проверить:
public static void main(String[] args) {
JsonArray jsonArray = new JsonArray();
SmsToSend smsToSend1 = new SmsToSend(1,526833,"Test1");
SmsToSend smsToSend2 = new SmsToSend(2,526834,"Test2");
jsonArray.add(new Gson().toJson(smsToSend1));
jsonArray.add(new Gson().toJson(smsToSend2));
String jsonResp = jsonArray.toString();
System.out.println(jsonResp);
jsonResp = jsonResp.replaceAll("\"[{]", "{");
jsonResp = jsonResp.replaceAll("[}]\"", "}");
jsonResp = jsonResp.replaceAll("\\", "");
System.out.println(jsonResp);
}
Большое спасибо за вашу помощь.
РЕШЕНИЕ:
Проблема заключалась в том, что new Gson().toJson(smsToSend)
возвращает строку, поэтому jsonArray
был массивом строки.Я изменил на new Gson().toJsonTree(smsToSend)
, который возвращает объект, и теперь он работает нормально.
public static void main(String[] args) {
JsonArray jsonArray = new JsonArray();
SmsToSend smsToSend1 = new SmsToSend(1,526833,"Test1");
SmsToSend smsToSend2 = new SmsToSend(2,526834,"Test2");
jsonArray.add(new Gson().toJsonTree(smsToSend1));
jsonArray.add(new Gson().toJsonTree(smsToSend2));
String jsonResp = jsonArray.toString();
System.out.println(jsonResp);
}