我在节点js中使用Woocommerce API
将产品数据从mssql server
db导入我的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
}
]
}
};
休息很好,但我有图像问题,因为我在引号images: '[{...}]'
中获取图像json,因为数据类型是db表中的varchar。
由于此引号,图像不会通过Woocommerce rest API插入数据库。
我想特别删除图片中的引用。或任何其他建议。
我是节点js的新手。请任何人帮忙。
答案 0 :(得分:0)
据我所知,问题是你在指定图像位置的字符串的开头和结尾处得到额外的""
。
你只需要砍掉第一个& 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>
OR
演示:
从字符串的开头和结尾删除“”:
var someStr = String('[{...}]');
alert(someStr)
alert(someStr.replace(/^"(.*)"$/, '$1'));
var someStr = String('"[{...}]"');
alert(someStr)
alert(someStr.replace(/^"(.*)"$/, '$1'));
OR
var test = "\"House\"";
console.log(test);
console.log(test.replace(/\"/g, ""));
参考:remove-double-quotes-from-json-return-data和Can you create a JavaScript string without using ' or " quotes?