Сопоставление поля json с именем, содержащим пробелы или специальные символы, с помощью Jsonata - PullRequest
0 голосов
/ 07 августа 2020

Допустим, у меня есть JSON вроде:

{
  "normal": 1,
  "has some spaces": 2,
  "@": 3
}

Я могу получить значение поля normal с помощью простого запроса:

normal

Однако я могу Не получаю два других поля. Я пробовал:

[has some spaces]
'has some spaces'
['has some spaces']
"has some spaces"
["has some spaces"]
{has some spaces}
{'has some spaces'}
{"has some spaces"}

, но ни один из них не работает

1 Ответ

0 голосов
/ 07 августа 2020

Это было решено для меня сопровождающим проблемы с github, которую я поднял :

В разделе Navigating JSON Objects следующие указан:

Ссылки на поля, содержащие пробелы или зарезервированные токены, могут быть заключены в обратные кавычки

...

затем Выражения JSONata `has some spaces` и `@` будут соответствовать 2 и 3.

Но не раньше, чем я обнаружил две альтернативы методом проб и ошибок:

$."has some spaces"

и

$.'has some spaces'
...