我正在使用Acuity Scheduling API,为了发布自定义字段,我需要在数组内部有一个JSON对象,它有2个键/对值,id和value。这是我目前的代码:
$postarray = array (
'datetime'=>'2017-02-01T14:00:00-0800',
'appointmentTypeID'=>'Appt ID',
'firstName'=>'First Name',
'lastName'=>'last Name',
'email'=>'myemail',
'phone'=>'phone #',
'fields' => array(
array('id'=>'1234', 'value'=>'Field Data')
)
);
$post = json_encode($postarray);
我在'字段中有一个数组'数组,因为我不知道如何在数组中添加一个带有2个值的json对象,然后通过json_encode,因为请求要求在发送之前先将其转换为JSON。
它目前正在给我这个错误:" {" status_code":400," message":"进入表单字段\ u00221234 \ u0022不在这个任命上存在。"在" u0022"之后它增加了我的字段ID。我需要的是我的主数组成为一个JSON对象,'字段'要成为一个数组,然后将各个id和value对作为它们自己的对象,就像这样(直接来自Acuity Scheduling API):
{
"datetime": "2016-02-03T14:00:00-0800",
"appointmentTypeID": 1,
"firstName": "Bob",
"lastName": "McTest",
"email": "bob.mctest@example.com",
"certificate": "ABC123",
"fields": [
{"id": 1, "value": "Party time!"}
]
}
以下是Acuity Scheduling API,供此特定请求https://developers.acuityscheduling.com/reference#post-appointments
参考答案 0 :(得分:0)
'fields' => array(
json_encode(array('id'=>'1234', 'value'=>'Field Data'))
)
答案 1 :(得分:0)
ID应该是一个数字,而不是一个字符串,所以不要把它放在引号中。
$postarray = array (
'datetime'=>'2017-02-01T14:00:00-0800',
'appointmentTypeID'=>'Appt ID',
'firstName'=>'First Name',
'lastName'=>'last Name',
'email'=>'myemail',
'phone'=>'phone #',
'fields' => array(
array('id'=> 1234, 'value'=>'Field Data')
)
);
如果您从脚本参数中获取ID,请使用intval()
将其从字符串转换为数字。