【发布时间】:2016-09-20 06:52:57
【问题描述】:
我创建了一个演示页面,使用以下代码将关联数组转换为 JSON 字符串。
$test = array("name"=>"test","city"=>"xyz","zipcode"=>"98989");
echo json_encode($test);
我正在关注输出
{
"name": "test",
"city": "xyz",
"zipcode": "98989"
}
我的预期输出
"{
\"name\": \"test\",
\"city\": \"xyz\",
\"zipcode\": \"98989\"
}"
因为我收到错误 “无法在 shipstation API 中反序列化当前 JSON 对象(例如 {\"name\":\"value\"})。如何实现我的预期输出。
实际代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
$post_fields = array(
"orderNumber" => "XXXXXXXXXXXXXXXXXX",
"orderDate" => "2015-06-29T08:46:27.0000000",
"shipByDate" => "2015-07-05T00:00:00.0000000",
"orderStatus" => "awaiting_shipment",
"billTo" => array("name"=>"ABCD PVT LTD"),
"shipTo" => array("name"=>"XYZ PVT LTD Bombay","company"=>"PTR","street1"=>"301,Park Street","city"=>"Sydney","postalCode"=>"20500","country"=>"Australia","residential"=>true),
"items" => array(
array(
"name"=>"PTR Last order by ABC #9999",
"quantity"=>2,
"unitPrice"=>99.99,
"options"=>array("name"=>"SIZE","value"=>"Large"),
"amountPaid"=> 199.98,
"paymentMethod"=>"Credit Card",
"shipDate"=>"2015-07-02"
)
)
);
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($post_fields));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Authorization: < Enter your Basic Authorization string here >"
));
【问题讨论】:
-
投反对票的人请发表评论以改善我的问题。
-
API 不太可能需要该输出。您应该显示引发错误的代码。
-
@Juhana 我已经给出了 API 所需的预期输出。
-
试试这个
echo json_encode(json_encode($test), JSON_UNESCAPED_SLASHES); -
您指定的错误是说它无法使用 \"....在你的 e 代码行之后尝试和 json_decode ,你会发现它工作正常。为了更准确的帮助,请提供一个实际的例子。
标签: php json serialization