PowerBI: как мне настроить таргетинг на значение в дереве JSON с помощью power query?

#json #powerquery

#json #powerquery

Вопрос:

Мне нужно извлечь параметр из удаленного JSON и добавить его в качестве параметра в запрос.

Я следил за онлайн-уроком, где значение берется из значения корневого уровня, где, поскольку мое значение находится в массиве.

Пример: обучающий JSON:

 "value" : "/v1/projects/123456/contacts?page_size=500amp;vars[Validated][exists]=amp;marker=abc123"
 

JSON, который возвращает моя служба:

 "resources": [
{
  "rel": "next",
  "href": "/v1/projects/123456/contacts?page_size=500amp;vars[Validated][exists]=amp;marker=abc123"
}
 

Если я попытаюсь получить:

 Value =  Json[#"resources"][0][#"href"]
 

это неправильный тип.

Если я получу:

 Value =  Json[#"resources"][0]
 

он получает список.

Если я попытаюсь:

 Value =  Json[#"resources"][0][#"href"]
 

Я получаю сообщение об ошибке:

 Expression.Error: We cannot apply field access to the type List.
Details:
    Value=[List]
    Key=0
 

Как мне настроить таргетинг на значение href?

Ответ №1:

Попробуйте поменять [0] местами » для {0} » . Итак, что-то вроде:

 let
    json = [
        resources = {
            [
                rel = "next",
                href = "/v1/projects/123456/contacts?page_size=500amp;vars[Validated][exists]=amp;marker=abc123"
            ]
        }
    ],
    href = json[resources]{0}[href]
in
    href
 

В M вы используете фигурные скобки {} для доступа к элементам внутри «списков» (аналогично массивам в JavaScript) и квадратные скобки [] для доступа к элементам внутри «записей» (аналогично объектам в JavaScript).

Это немного отличается от JavaScript, где можно использовать квадратные скобки [] для поиска элементов как в массивах, так и в объектах.


Подробные сведения: