Sql 如果数组值(取自NetSuite字段)为空,是否从数组中删除?
尝试使用netsuite/celigo和第三方市场整合API集成。大多数JSON都很好,但在让照片正常工作时遇到了麻烦。它们必须作为数组传递,但我们的每个项目都有不同数量的照片。我可以访问netsuite中的SQL表达式和一种“JSON文档生成器”,其中还内置了Celigo中的几个函数 这就是传递的信息的样子(我用一个假的url替换了实际的url)。因此,我需要一种方法从数组中删除这些空白字段,这些字段当前显示为“” “DocumentBuilder”端看起来是这样的(看起来像Celigo的语法),同样有很多函数可用,但没有使用,也不确定使用哪一个Sql 如果数组值(取自NetSuite字段)为空,是否从数组中删除?,sql,arrays,json,netsuite,Sql,Arrays,Json,Netsuite,尝试使用netsuite/celigo和第三方市场整合API集成。大多数JSON都很好,但在让照片正常工作时遇到了麻烦。它们必须作为数组传递,但我们的每个项目都有不同数量的照片。我可以访问netsuite中的SQL表达式和一种“JSON文档生成器”,其中还内置了Celigo中的几个函数 这就是传递的信息的样子(我用一个假的url替换了实际的url)。因此,我需要一种方法从数组中删除这些空白字段,这些字段当前显示为“” “DocumentBuilder”端看起来是这样的(看起来像Celigo的语法
"photos":["{{this.0.Photo1}}", "{{this.0.Photo2}}", "{{this.0.Photo3}}", "{{this.0.Photo4}}",],
(其中照片3和的netsuite字段为空)
我尝试将所有URL连接起来,但是它们不会采用正确的数组格式,同样的问题仍然适用于字段为空的额外字符。我必须避免更改数据实际输入NS字段的方式,因为这会破坏我们的其他集成。考虑到您有以下内容:
“照片”:[“url.jpg”,“url2.jpg”,“”“,”“,]”,
Celigo处理的结果是:“photos”:[{{this.0.Photo1}}]、{{{this.0.Photo2}]、{{{this.0.Photo3}]、{{{{this.0.Photo4}}]、
使用数组.filter()怎么样
let ob = {
//..other properties
photos: ["url.jpg", "url2.jpg", "", "", ]
}
ob.photos = ob.photos.filter(function(el) { return el });
编辑
根据ErictGrabaugh的评论,Netsuite似乎运行Ecmascript 5,所以lamnda将无法工作。我已将其更改为以前的JS版本请注意,此特定语法在服务器端NetSuite中不起作用,因为它不支持ES6+<不过,code>Array.filter()在这种情况下肯定能很好地工作。请参见此处的示例:
let ob = {
//..other properties
photos: ["url.jpg", "url2.jpg", "", "", ]
}
ob.photos = ob.photos.filter(function(el) { return el });