Как конвертировать компактный Json в кодовое название - PullRequest
0 голосов
/ 19 января 2019

Я хочу знать, как преобразовать строку компактного Json в красивую печать, чтобы я мог ее проанализировать. Я искал этот вопрос в переполнении стека, но, похоже, никто не спрашивал его по коду. Прямо сейчас у меня есть строка компактного Json, но она не может быть проанализирована. Это код:

String JsonData = "{\"document\":{ \"type\":\"PLAIN_TEXT\", \"content\":\"Ask not what your country can do for you, ask what you can do for your country.\" },\"encodingType\":\"UTF8\"}";
            JsonResponse = Rest.
                post("https://language.googleapis.com/v1/documents:analyzeSyntax?key=[API KEY").
                    jsonContent().
                    body(JsonData).
                    getAsJsonMap();
            String JsonString = (JsonResponse.getResponseData()).toString();
            JSONParser parser = new JSONParser();
            Map<String, Object> results = null;
            try {
                results = parser.parseJSON(new StringReader(JsonString));
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("fail");
            }
            System.out.println("results   "+results);

Но когда я запускаю этот код, я получаю кучу таких ответов:

[EDT] 0:0:3,269 - Expected null for key value while parsing JSON token at row: 1 column: 5 buffer: e

и

java.lang.NumberFormatException: For input string: "ee0"

Как мне преобразовать мою строку компактного Json (JsonString) в симпатичную печать, чтобы я мог ее проанализировать? В качестве альтернативы, есть ли способ прямого анализа ответа (JsonResponse)? Спасибо

1 Ответ

0 голосов
/ 19 января 2019

Вы распечатываете карту, а не строку JSON, так как данные JSON уже проанализированы.Если вы просто хотите взглянуть на сетевой протокол для отладки, лучший способ сделать это - открыть Network Monitor в симуляторе, где вы увидите все HTTP-запросы и можете скопировать тело ответа JSON.

Однаковы все равно можете конвертировать Map обратно в JSON, используя:

Log.p("results   " + JSONParser.mapToJson(results));

Обратите внимание, что вы должны использовать Log.p() и Log.e() для регистрации строк / исключений, так как это будет работать лучше на устройствах.

...