我需要从json获取正确的列表框列数据
我的json如下:
[
{
"CustName": "Matt Harrison",
"name": "Steve Rucci",
"functionRoom": "Living Room",
"bookingId": "659",
"bookingName": "Matt Booking for Lost Business Report Sept 11",
"postAs": ""
}
]
我应用了自定义功能
copyObjectProps(source, keys) {
let newObject = {}
keys.forEach(function(key) {
newObject[key] = source[key]
})
return newObject
}
在按钮上单击“首先我准备列列表”
$("#button").click(function(){
var s='';
$("Listbox > option").each(function() {
s+="'"+this.text+"',";
});
s=s.replace(/,+$/,'');
objBookingReports.RS_FN_FunctionList=s;
})
然后此列表转到copyObjectProps()函数并创建过滤的json对象
var filteredparam1 = new Array();
var x =objBookingReports.RS_FN_FunctionList;
// x value is "'bookingId','bookingName'"
x = x.replace(/^"\?/, '');
x=x.replace(/"+$/,'');
var y=[x];
$.each(jsonData, function(key, value){
filteredparam1.push(objBookingReports.copyObjectProps(value,y))
});
console.log(filteredparam1)
}
问题出在格式化中。当我将列列表放在y = [x]时; .it不会使用选定的列重新调整json数据。但是,如果我尝试放置
这样的核心价值var y=['bookingId','bookingName'];
然后它显示了我的结果。请提出如何正确设置列列表格式的提示?
答案 0 :(得分:2)
尝试这样:
var filteredparam1 = new Array();
var x =objBookingReports.RS_FN_FunctionList;
// x value is "'bookingId','bookingName'"
// x = x.replace(/^"\?/, '');
// x=x.replace(/"+$/,'');
var y = x.replace(/["']/g, "").split(',') // var y=[x];
$.each(jsonData, function(key, value){
filteredparam1.push(objBookingReports.copyObjectProps(value,y))
});
console.log(filteredparam1)
}
似乎您的y
变量变成了只有一个元素的数组:"'bookingId','bookingName'"
;只需尝试用变量x
中的空格替换单引号,然后用逗号分隔即可。
Here一种替换单引号和双引号的解决方案。