Использование Curl и PUT-запроса для редактирования файла JSON - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь отредактировать конечную точку в REST API, который дает мне массив объектов. Я хочу отредактировать файл json, но у меня возникли проблемы с форматированием HTTP-запроса.

вывод конечной точки выглядит примерно так:

"result" : [
  {
     "MAC" : "00:08:00:4A:A1:B3",
     "available" : true,
     "bridge" : "br0",
     "ipv4" : {
        "dns1" : "",
        "dns2" : "",
        "gateway" : "",
        "ip" : "",
        "mask" : "",
        "mode" : ""
     },
     "ipv6" : {
        "delegatedPrefixLength" : 64,
        "dns1" : "",
        "dns2" : "",
        "enabled" : false,
        "fixedIp" : [],
        "gateway" : "",
        "ip" : [],
        "linkLocalIp" : [],
        "mode" : "DELEGATED",
        "prefixDelegationEnabled" : false
     },
     "name" : "eth0",
     "nitype" : "ETHER",
     "type" : "LAN"
  },
  {
     "available" : false,
     "bridge" : "br0",
     "ipv4" : {
        "dns1" : "",
        "dns2" : "",
        "gateway" : "",
        "ip" : "",
        "mask" : "",
        "mode" : ""
     },
     "ipv6" : {
        "delegatedPrefixLength" : 64,
        "dns1" : "",
        "dns2" : "",
        "enabled" : false,
        "fixedIp" : [],
        "gateway" : "",
        "ip" : [],
        "linkLocalIp" : [],
        "mode" : "DELEGATED",
        "prefixDelegationEnabled" : false
     },
     "name" : "eth1",
     "nitype" : "ETHER",
     "type" : "LAN"
  }

]

Мне нужно иметь возможность добавлять некоторые поля в первый объект в массиве. Я пытался

curl -k -X PUT -H "Content-Type: application/json" -d '{[{"ipv4":{"mode":"DHCP"},"name": "eth0", "type":WAN}]"}' https://192.168.2.1/api/ni?token=$token1

, но постоянно получаю сообщение об ошибке, в котором говорится, что он ожидает и объект / значение / массив.

Есть предложения?

1 Ответ

0 голосов
/ 25 апреля 2020

Похоже, что ваши данные PUT не имеют поля верхнего уровня JSON:

{[{"ipv4":{"mode":"DHCP"}, ...

API, вероятно, ожидает что-то вроде этого:

{"request": [{"ipv4":{"mode":"DHCP"}, ...

Проверьте документацию и примеры для этого API.

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