Попробуйте выложить массив объектов из почтальона в php API и получить ошибки - PullRequest
2 голосов
/ 29 марта 2020

Я пришел из Java -скриптового мира, и этот синтаксис для меня странен для меня.

Я пытаюсь отправить почтовый запрос от почтальона с массивом объектов, подобным этому:

Мой php код:

<?php
$signatures = $_POST["signatures"];
$signature = array_filter($signatures);
echo json_encode($signature);

Но мой ответ от почтальона:

enter image description here

Ответы [ 3 ]

1 голос
/ 29 марта 2020

Как отправить массив объектов: Установите почтальон в application / json и тело сообщения:

[
    {
        "id": 1,
        "flowID": 1,
        "fileID": 2,
        "type": "identification",
        "page": 1,
        "positionX": 160,
        "positionY": 241,
        "sizeWidth": 150,
        "sizeHeight": 250
    },
        {
        "id": 2,
        "flowID": 4,
        "fileID": 2,
        "type": "partner",
        "page": 1,
        "positionX": 160,
        "positionY": 241,
        "sizeWidth": 150,
        "sizeHeight": 250
    }
]

Получите тело запроса и сделайте его массивом:

$rawPostBody = file_get_contents('php://input');
$signatures = (array)json_decode($rawPostBody);

L oop над массивом:

foreach($signatures as $signature) {
    echo $signature->type;
}

Надеюсь, это поможет тем, кто когда-либо ищет, как это сделать.

0 голосов
/ 29 марта 2020

Вы пытаетесь отфильтровать массив, но вы не написали, как его отфильтровать (второй параметр)

    <?php
$signatures = $_POST["signatures"];
$signature = array_filter($signatures,<**variabile or function to be filtered**>);
echo json_encode($signature);
0 голосов
/ 29 марта 2020

То, как вы делаете это, невозможно, я полагаю, вы можете передавать только строки, используя POST и GET, попытаться отправить все данные только за один KEY, а затем json_decode на стороне обслуживания. Поэтому попробуйте отправить что-то вроде этого

[
  {
    "id": 1,
    "flowID": 1,
    "fileID": 1,
    "type": "partner",
    "page": 1
  }
]

как VALUE, с KEY: signatures, затем в PHP код:

<?php
$signatures = json_decode($_POST["signatures"]); // <=== this is an array now
print_r($signature);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...