Мне нужно отправить данные POST в следующем формате.
{
"buys": [
{
"productId": "1ae9ac1a37934fde92d7545cd6c93c13",
"amount": 200.00
}
]
}
В настоящее время мой PHP-скрипт, которому подчиняется форма, есть.
<?php
$productId = $_POST['productId'];
$amount = $_POST['amount'];
$type = $_POST['name'];
//API Url
$url = 'https://********.com/post_test.php';
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = array(
'type' => $type,
'productId' => $productId,
'amount' => $amount
);
//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//Execute the request
$result = curl_exec($ch);
?>
Это вывод после отправки в форму на внешнем интерфейсе, что неверно. Я думал, что он перенаправит на введенный URL-адрес, но я предполагаю, что это не предназначено, и он только публикует? (когда я набрал это, я задался вопросом, является ли вывод, который я вижу, с веб-страницы, на которую я ссылаюсь в верхней части скрипта, поскольку эта страница просто повторяет JSON в виде строки).
{"type":"buys","productId":"2ed913357e8842e9a38f0a16eb9703a9","amount":"45866"}
Я действительно понятия не имею, что делать дальше или что искать в Google, чтобы найти учебник.
Еще немного деталей, у меня есть форма, которая отправляет PHP-скрипт выше. Переменная $name — это «покупки» в запрошенном формате, остальные переменные говорят сами за себя.
Я уверен, что мне просто нужно отформатировать JSON, используя мои переменные, но я понятия не имею, с чего начать.






ваши данные json должны быть такими
$jsonData = array(
$type => array(
'productId' => $productId,
'amount' => $amount
)
);
вывод :
{"busy":{"productId":"1ae9ac1a37934fde92d7545cd6c93c13","amount":"200.00"}}
Итак, вы хотите, чтобы покупки были массивом:
//The JSON data.
$jsonData = array(
$type =>
array(
'productId' => $productId,
'amount' => $amount
)
);
Выход будет {"bugs":{"productId":"productId","amount":"amount"}}
Спасибо, так много смысла теперь, когда мне показали. Учимся каждый день
Измените свой $jsonData:
$jsonData = array(
'type' => $type,
'productId' => $productId,
'amount' => $amount
);
Следующее:
$jsonData = array();
$jsonData[ $type ] = array();
$jsonData[ $type ][] = array(
'productId' => $productId,
'amount' => $amount
);
Спасибо, я изначально поторопился с ответом, который я пометил как правильный. Это то, что мне нужно, так как у него есть []
Вы можете попробовать это
$jsonData['buys'][] = array(
'productId' => $productId,
'amount' => $amount
);
print_r(json_decode(Your_json_string, true));покажет вам нужный массив