Приложение Logi c: как объединить несколько ответов, используя каждый цикл - PullRequest
0 голосов
/ 15 апреля 2020

Я использую 1 сторонний сервис, который предоставляет мне 500 записей одновременно, но я хочу, чтобы все записи были вместе в одном запросе. Я интегрировал эту часть, используя Every l oop enter image description here, вот так выглядит мой my для каждого l oop

Когда я пытался получить все ответы, используя Array, данные не обрабатываются, массив добавляет целое JSON, которое из ответа в качестве объекта, который выглядит так эти данные в приложении logi c, может кто-нибудь, пожалуйста, руководство, как это сделать

1 Ответ

1 голос
/ 16 апреля 2020

Вы не показываете детали вашего потока, так что, возможно, вы могли бы обратиться к моему ниже потока. Чтобы высмеять вашу ситуацию, я использую http триггер, чтобы получить данные json. Будь низким - это мой тест json данных. Если это не то, что вам нужно, пожалуйста, дайте мне знать.

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 0,
      "lookup": "PSI"
    }]
},
{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 1,
      "lookup": "CLEAN"
    }]
}]

Сначала я анализирую данные json из тела триггера, инициирую переменную массива для сохранения массива после форматирования.

enter image description here

Затем l oop данные json, форматирующие массив. Если все ваше свойство data имеет только один объект json в массиве, вы можете добавить массив с items('For_each')['data'][0], если вам не нужен другой For each к l oop массиву data.

enter image description here

Затем получите желаемое значение json, так как вам нужен только один объект json, а значения json такие же, кроме data имущество. Поэтому я использую действие compose, чтобы поменять json. Я устанавливаю значение с помощью setProperty(body('Parse_JSON')[0],'data',variables('array')).

enter image description here

Вот мой результат теста, надеюсь, это то, что вы хотите.

enter image description here

Обновление : если я не понял неправильно, в вашем массиве данных имеется более одного объекта, и вы хотите получить их все, если все правильно, как и упомянул, что вам нужно еще одно действие For each для l oop массива, затем добавьте их все к переменной, вы можете обратиться к следующему потоку.

Все остальные действия такие же, добавьте For each в существовать For each.

enter image description here

Вот мой результат теста. Ниже приведены json данные, которые я отправил в приложение logi c.

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 0,
      "lookup": "PSI"
    },{
        "count": 3,
      "lookup": "TEST"
    }]
},
{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 1,
      "lookup": "CLEAN"
    },{
        "count": 4,
      "lookup": "GET"
    }]
}]

enter image description here

Update2 : ниже мой тест json и результат:

[{ 
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [ 
        [
            { "count" : 0, "lookup": "test0" },
            { "count": 1, "lookup": "test1" }
        ], 
        [ 
            { "count": 2, "lookup": "test2" },
            { "count": 3, "lookup": "test3" }
        ]
    ] 
},{ 
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [ 
        [
            { "count" : 4, "lookup": "test4" },
            { "count": 5, "lookup": "test5" }
        ], 
        [ 
            { "count": 6, "lookup": "test6" },
            { "count": 7, "lookup": "test7" }
        ]
    ] 
}]

Просто добавьте еще один для каждого действия.

enter image description here

enter image description here

Обновление : чтобы отправить http-ответ с данными json, вы можете использовать действие Response для этого.

enter image description here

enter image description here

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