Как я могу стереть символ '\' из моей строки - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть строка, которая является массивом 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);
}

1 Ответ

0 голосов
/ 14 декабря 2018

Решение:

Проблема заключалась в том, что новый Gson (). ToJson (smsToSend) возвращает String, поэтому jsonArray был массивом строк.Я изменил на новый 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...