У меня есть служба JSON, которая возвращает результаты с «\ n», когда InputStreamReader считывает, что результат «\» пропал - PullRequest
1 голос
/ 24 ноября 2011

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

1 голос
/ 25 ноября 2011

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

Добавьте следующие строки в 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);
    }
}
0 голосов
/ 24 ноября 2011

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

...