У меня есть служба JSON, которая возвращает результаты с "\n", когда InputStreamReader считывает, что результат "\" пропал

У меня есть служба JSON, которая возвращает результаты с "\n", когда InputStreamReader читает результат, "\" исчез и оставляя "n" в строке.

У меня проблемы с преобразованием "\n" в следующую строку для отображения в TextArea.

Например:

Service Result: Hello\nWorld
PassThrough InputStreamReader: HellonWorld
TextArea Output: HellonWorld

Мне нужно, чтобы это было:

Service Result: Hello\nWorld
PassThrough InputStreamReader: Hello
World
TextArea Output: Hello
World

Пожалуйста, помогите мне, как привести эту проблему.

Я использую LWUIT и разрабатываю для устройства J2ME.

2 ответа

Решение

Это не лучший способ сделать это, но вот оно:

Добавьте следующие строки в JSONParser.java

else if (c == 'n') {
    c = '\n';
}

ниже

c = (char) i.read();
if (c == 'u') {
    String unicode = "" + ((char) i.read()) + ((char) i.read()) + ((char) i.read()) + ((char) i.read());
    try {
        c = (char) Integer.parseInt(unicode, 16);
    } catch (NumberFormatException err) {
        // problem in parsing the u notation!
        err.printStackTrace();
        System.out.println("Error in parsing \\u" + unicode);
    }
}

Можете ли вы вставить точную возвращенную строку JSON. Если данные в двойных кавычках " тогда это не должно быть изменено вообще, за исключением декодирования \u нотации.

Другие вопросы по тегам