Клиент Groovy Rest: ошибка при синтаксическом анализе приложения/json

Мне нужно использовать простой REST API, который возвращает либо «true», либо «false» (без фигурных скобок).

Когда я попытался вызвать этот API с помощью Groovy Rest Client в файле Gradle от Jenkins, я получаю исключение ниже.

Ошибка анализа ответа 'application/json;charset=UTF-8' groovy.json.JsonException: полезная нагрузка JSON должна начинаться с открывающей фигурной скобки '{' или открывающей квадратной скобки '['. Вместо этого в строке: 1, столбце: 1 было найдено значение "истина".

Примечание. Этот код работает нормально

  1. при вызове из командной строки
  2. при вызове из плагина Chrome «Почтальон»
  3. при вызове из eclipse на моей машине

Код:

response1 = client.get  (
                            path: 'updatetenantState'
                            ,query : [tenantId :tenant_id, inActive:true]
                            ,requestContentType: ContentType.JSON
                            ,headers: [Accept: 'application/json']
                        )

Я застрял на этом. Заранее спасибо.


person renGth    schedule 06.11.2018    source источник
comment
используйте другой клиент для отдыха или парсер json.   -  person daggett    schedule 06.11.2018
comment
Привет, даггет, я не могу использовать другой парсер, так как с помощью этого клиента уже написано много методов.   -  person renGth    schedule 06.11.2018


Ответы (1)


не знаю, какую библиотеку вы используете, но ошибка

Полезная нагрузка JSON должна начинаться с открывающей фигурной скобки '{' или открывающей квадратной скобки '['

является результатом использования JsonSlurperClassic для разбора строки 'true'

import groovy.json.*
new JsonSlurperClassic().parseText('true')

однако JsonSlurper работает нормально

import groovy.json.*
new JsonSlurper().parseText('true')

поэтому вам просто нужно изменить способ разбора ответа

person daggett    schedule 07.11.2018