У меня есть служба 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
нотации.