2

当商家添加新产品时,只要在 body_html 字段中输入普通文本,效果就很好。但是,当他们尝试从复制粘贴或将图像添加到所见即所得编辑器(具有“”)中添加一些 HTML 时,我们得到了著名的:

词法错误:json 文本中的字符无效。

现在,他们可能是从未知来源粘贴的,有没有办法弄清楚我如何在将 body_html 发送到 ShopifyAPI 之前清理它?

顺便说一句,我正在使用 PHP 和 wcurl.php https://github.com/sandeepshetty/wcurl

更新:

词法错误:json 文本中的字符无效。

              "{"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));
4

1 回答 1

2

如果我理解这一点,解决方案是:

stripslashes(json_encode($params))

我在我的 Shopify 客户端中执行此操作: https ://github.com/sandeepshetty/shopify_api/blob/1f538276e690bd7b95f9cbb4007576ecb2d3f6de/client.php#L52

注意:PHP 5.4.0 在json_encode中有一个选项。

于 2012-09-24T19:58:46.187 回答