当商家添加新产品时,只要他们在body_html字段中键入普通文本,它就会很好用。但是,当他们尝试从复制粘贴添加一些HTML或将图像添加到WYSIWYG编辑器(具有“”)时,我们得到了着名的:
词法错误:json文本中的char值无效。
现在,他们可能会从一个未知的来源粘贴,有没有办法弄清楚如何在将它发送到ShopifyAPI之前清理body_html?
顺便说一句,我正在使用PHP和wcurl.php https://github.com/sandeepshetty/wcurl
更新:
词法错误:json文本中的char值无效。
"{"product":{"title":"Sample Event
(right here) ------^
代码示例:
$shopify_data = array
(
"product"=>array
(
"title"=>$rs->product_title,
"body_html"=>$rs->product_details,
"vendor"=>"My Companay",
"product_type"=>"Laptop"
)
);
foreach ($variant as $key => $value) {
$shopify_data["product"]["variants"][$key] = array(
"option1"=> $value->variant_name,
"price"=> $value->price,
"requires_shipping"=>'true',
"inventory_management"=>"shopify",
"inventory_quantity"=> $value->quantity
);
}
// $shopify_data = json_encode($shopify_data); // This does not work either.
$shopify_data = stripslashes(json_encode($shopify_data));
答案 0 :(得分:2)
如果我理解这一点,解决方案就是:
stripslashes(json_encode($params))
我在Shopify客户端执行此操作: https://github.com/sandeepshetty/shopify_api/blob/1f538276e690bd7b95f9cbb4007576ecb2d3f6de/client.php#L52
注意:PHP 5.4.0在json_encode中有一个选项。