У меня есть данные на PHP, которые я хочу отправить в API, написанный в формате JSON. Мои данные представляли собой массив PHP, посредством которого я конвертирую в объект JSON, а затем в строку JSON, чтобы я мог отправить. Но для API требуется массив объектов, как показано в приведенном ниже коде, как я могу написать свой код в соответствии с его форматом
Требования из массива, записанного в формате JSON
{
"children":[
{"child_name":"abc","child_dob":"2015-05-23"},
{"child_name":"efg","child_dob":"2016-09-13"}
]
}
Мой код PHP
//Convert the PHP array to a JSON object
$child =(object)$children;
//Convert JSON object to a JSON string to send to server
$ch = json_encode($child);
dd($ch);
//result in browser
"{"child_name":"mnmbmb","child_dob":"2018-10-30"}"
«Я конвертирую в объект JSON, а затем в строку JSON» ... это не имеет смысла. JSON - это просто строка. Это декодируемый в объекты и т. д., Но как только вы превратите его в JSON, у вас уже есть строка. Когда вы комментируете //Convert the PHP array to a JSON object, вы фактически все еще превращаете его в объект PHP. Это не JSON, пока вы не закодируете его как строку JSON. Вы можете подумать, что я придираюсь, но это помогает использовать правильную терминологию, тогда все понимают, что вы имеете в виду, и можете быть уверены, что понимаете, что делаете.
@ADyson Спасибо, примите к сведению
@HarveyFletcher Это мой детский массив ['child_name' => $childname , 'child_dob' => $childdob]






Нет необходимости преобразовывать его в объект. Попробуйте вместо этого
$data=array();
$data['children'] =$children;
//Convert JSON object to a JSON string to send to server
$ch = json_encode($data);
dd($ch);
Привет, я реализовал ваше решение и получаю следующие данные после dd () "{"children":{"child_name":"mnmbmb","child_dob":"2018-10-30"}}". Это все еще вызывает ошибку с API, который ожидает, что свойство children будет содержать массив объектов, как показано ниже в формате "children":[ {"child_name":"abc","child_dob":"2015-05-23"}, {"child_name":"efg","child_dob":"2016-09-13"} ].
Ваш массив $children, как вы показали выше, содержит только одну строку, но он должен содержать массив значений или строк.
Я проверил документацию, и она может принимать 1 строку, данные, которые отправляются, представляют собой строку JSON, как мне преобразовать ее обратно в объект JSON, который является форматом, который требует API
Под массивом значений или строк я имел в виду, что ваш массив $children должен быть 2d-массивом. Например, попробуйте использовать этот массив как $children: array(array('child_name'=>'abc','child_dob'=>'2015-05-23'),array('child_name'=>'efg','child_dob'=>'2016-09-13'))
Покажите, пожалуйста, ваш php-массив
$children