Невозможно получить значение ключа, называемое свойствами "properties": "Value" Groovy - PullRequest
2 голосов
/ 11 июня 2019

Я делаю запросы API к сервису, который возвращает объект JSON в теле.

Кажется, я не могу получить значение ключа "properties" в groovy.

Каждый раз, когда я звоню obj.properties, я получаю следующее

{
  "class": "org.json.JSONObject"
}

, но если я вызываю только obj, я получаю ожидаемый объект JSON

{
  "dummy1": ,
  "dummy2": false,
  "dummy3": etsad,
  "dummy4": asdfw,
  "dummy5": qweqwe,
  "dummy6": 123123,
  "properties": {
    "country": UK,
   }
}

Аналогично, если я obj.dummy2 я получаю false только когда я obj.properties получаю вышеупомянутый ответ

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Обратите внимание, что groovy имеет специальную обработку для объекта properties, например для номера:

def y = 25
print y.properties

Будет напечатано [class:class java.lang.Integer]

Так что это часть базового заводного объекта

См. Также ответ о получении несинтетических свойств от шпунтового объекта

В качестве комментария @daggett вы можете использовать

  obj.get('properties')
0 голосов
/ 11 июня 2019

Проверьте этот ответ здесь о том, как получить доступ к свойствам объектов.

Причина, по которой obj.properties не работает, скорее всего, связана с тем, что каждый объект будет иметь свойства, и в вашем случае obj.properties получает свойства объекта JSON, а не значение, связанное с ключом.

Вместо obj.properties рассмотрим obj['properties']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...