2

Woocommerce API在节点 js 中使用将产品数据从mssql serverdb 导入我的 woocommerce 数据库。

我正在通过 ms sql 查询的记录集包含一个images field.

在 Woocommerce API 中,要导入图像,我需要这种类型json object

var data = {
  product: {
    title: 'Premium Quality',
    type: 'simple',
    regular_price: '21.99',
    description: 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.',
    short_description: 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.',
    categories: [
      9,
      14
    ],
    **images: [
      {
        src: 'http://example.com/wp-content/uploads/2015/01/premium-quality-front.jpg',
        position: 0
      },**
      {
        src: 'http://example.com/wp-content/uploads/2015/01/premium-quality-back.jpg',
        position: 1
      }
    ]
  }
};

休息很好,但我对图像有疑问,因为我在引号中获取图像 json,images: '[{...}]'因为数据类型是 db 表中的 varchar。

由于这个引号,图像不会通过 Woocommerce REST API 插入到数据库中。

我想专门从图像中删除引号。或任何其他建议。

我是节点 js 的新手。任何人都可以帮忙。

4

1 回答 1

1

据我了解,您的问题是您""在指定图像位置的字符串的开头和结尾处获得了额外的信息。您只需在 js 中删除字符串变量的第一个和最后一个字符。

解决方案:

var x = String(/'[{...}]'/);
str = x.substring(1, x.length - 1);
var image = str.substring(1, str.length - 1);

演示:

function myFunction() {
  var x = String(/'[{...}]'/);
  str = x.substring(1, x.length - 1);
  var res = str.substring(1, str.length - 1);
  document.getElementById("demo").innerHTML = res;
}
<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

或者

演示:

从字符串的开头和结尾删除 "" :

var someStr = String('[{...}]');
alert(someStr)
alert(someStr.replace(/^"(.*)"$/, '$1'));

var someStr = String('"[{...}]"');
alert(someStr)
alert(someStr.replace(/^"(.*)"$/, '$1'));

或者

var test = "\"House\"";
console.log(test);
console.log(test.replace(/\"/g, "")); 

参考:remove-double-quotes-from-json-return-data你能在不使用 ' 或 " 引号的情况下创建 JavaScript 字符串吗?

于 2016-04-25T05:30:57.230 回答