从json对象值中删除引号

时间:2016-04-25 05:20:29

标签: json node.js wordpress woocommerce woocommerce-rest-api

我在节点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的新手。请任何人帮忙。

1 个答案:

答案 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-dataCan you create a JavaScript string without using ' or " quotes?