2015-01-05 8 views
1

я пытаюсь передать массив в качестве API, то API принимает массив в следующем формате, когда я запустить его в POSTMAN (raw form),Передача массива к API

{ 
"records": [ 
    { 
    "content": "50.150.50.55", 
    "type": "A", 
    "name": "test.mauqe.com", 
    "prio": null, 
    "ttl": 3600 
    } 
    ] 
} 

в то время как я пытаюсь передать массив в моем коде в этом формате

$data = array(
      "content" => "50.150.50.55", 
      "type" => "A", 
      "name" => "gulpanra.mauqe.com", 
      "prio" => "null", 
      "ttl" => "3600" 
      ); 

Я не понимаю, в чем проблема. ответная ошибка (Data sending format error). plz help

+2

Пожалуйста размещает более полный пример кода, который показывает, как вы вызываете функции, которые вы используете для отправьте эти данные с php на эту службу API. –

+0

Вы забыли добавить записи? и попробовали ли вы 3600 как число вместо строки? а затем попробовал null как нуль вместо строки? – ChrisAdmin

ответ

1
<?php 
$data = array('records' => array()); 
$data['records'][] = array( 

       "content" => "50.150.50.55", 
       "type" => "A", 
       "name" => "gulpanra.mauqe.com", 
       "prio" => null, 
       "ttl" => 3600 

     ); 

$json_output = json_encode($data); 
echo $json_output; 
?> 

Это даст следующее в качестве вывода:

{"records":[{"content":"50.150.50.55","type":"A","name":"gulpanra.mauqe.com","prio":null,"ttl":3600}]} 
+0

вы гений (Y) –

+0

Добро пожаловать, пожалуйста, bro :) –

1

Используйте json_encode, чтобы преобразовать ваш массив в json-формате, а затем передать его в api.

Api, который вы используете, ожидает данные в формате json.

$data = json_encode($data); 
0

Вам нужно будет преобразовать массив в json-формат, чтобы передать его api. использование json_encode(). Используйте приведенный ниже код

$array = array("content" => "50.150.50.55", "type" => "A", "name" => "gulpanra.mauqe.com", "prio" => "null", "ttl" => "3600"); 
$data = json_encode($data); // Pass this to API 

Надеется, что это помогает вам

2

В API ожидает множество карт. Ниже представлен массив карт.

[ 
    { 
    "content": "50.150.50.55", 
    "type": "A", 
    "name": "test.mauqe.com", 
    "prio": null, 
    "ttl": 3600 
    }, 
    {}, 
    {}, 
    ... 
] 

То, что вы проходите, не то же самое. Вы переходящий в одной карте

{ 
     "content" => "50.150.50.55", 
     "type" => "A", 
     "name" => "gulpanra.mauqe.com", 
     "prio" => "null", 
     "ttl" => "3600" 
} 

Try О внесении изменений $ Данные для:

$data = array(); 

array_push($data['records'], array(
     "content" => "50.150.50.55", 
     "type" => "A", 
     "name" => "gulpanra.mauqe.com", 
     "prio" => "null", 
     "ttl" => "3600" 
)); 
+0

Это, скорее всего, правильный, но он также нуждается в нем как 'json' ;-) – Darren

+0

точно .......... вы правы, я уже конвертирую в json, но как преобразовать мой массив в массив карт. pleaseeee –

+0

Я предполагаю, что json_encode уже отсортирован, как и в OP, уже имел его. См. Окончательную часть решения, где я предложил, как объявить $ data. – rurouni88

0

вы должны сделать массив за пределами, например

вы используете этот тип массива для кодирования

$data['records'] = array(
     'content' => '50.150.50.55', 
     and so on 
); 

изменить этот массив к этому

$data = array(
    'content' => '50.150.50.55', 
    and so on 
); 

это поможет

Смежные вопросы