有一个通过REST JSON发送的curl POST请求示例。
{"email": "sam@email.com", "items": [{ "name": "api Name", "quantity": 10, "unit_price": 2}, { "name": "api 2", "quantity": "4", "unit_price": 3 }]
}
我如何在PHP中格式化它。
我尝试了以下内容:
$data = array(
'email' => 'john@dow.com',
);
$data['items'] = array(
'name' => 'fruits', 'quantity' => 4,
'unit_price' => 7,
);
该服务只接受email
,并忽略items
。
答案 0 :(得分:0)
items
数组是一个对象数组。您正在显示字符串地图
答案 1 :(得分:0)
一个简单的技巧是使用PHP函数json_decode()
来获取PHP数据结构,当传递给json_encode()
时会生成所需的字符串:
var_export(json_decode(
'{"email": "sam@email.com", "items": [{ "name": "api Name", "quantity": 10, "unit_price": 2}, { "name": "api 2", "quantity": "4", "unit_price": 3 }]}',
TRUE
));
产生
array(
'email' => 'sam@email.com',
'items' => array(
0 => array(
'name' => 'api Name',
'quantity' => 10,
'unit_price' => 2,
),
1 => array(
'name' => 'api 2',
'quantity' => '4',
'unit_price' => 3,
),
),
)
传递TRUE
作为第二个参数来获取数组;没有它,json_decode()
生成对象而不是关联数组。
使用函数var_export()
获取生成数据结构的PHP代码,并将其作为参数传递给它。
在单独的脚本中使用上面的代码,以获取有关您需要创建的数据结构的提示,以便在将其编码为JSON时获取所需的字符串。不要把它放到你开发的产品中。