我需要拆分一个动态字符串。字符串可能看起来像下面的Code,Name和EffectDate。或者它可能只有(代码和名称)或(代码和效果日期)或(名称和效果日期)。你明白了。
{"Code":{"value":"1"},"Name":{"value":"Entity1"},"EffectDate":{"value":"23/11/2016"}}
到
...
this.data[0].key ='Code'; \\something like this (desired result)
this.data[0].value = '1';
this.data[1].key = 'Name';
this.data[1].value = 'Entity1';
this.data[2].key = 'EffectDate';
this.data[2].value = '23/11/2016';
我在代码中做了什么:
...
filters:string;
data:string[];
...
this.data = this.filters.split("\b(?:(?!value)\w)+[a-zA-Z0-9/]\b");
console.log(this.data);
我使用了这种模式 \ b(?:(?!value)\ w)+ [a-zA-Z0-9 /] \ b ,但仍然无法获得所需的结果。 this.filter始终只返回一个具有相同字符串的数组。任何意见将是有益的。谢谢。
更新#1:
我正在使用数据表的PrimeNg扩展,我将事件作为参数。在那里,event.filters返回一个过滤器对象列表。我无法将对象发送到服务,它需要采用与服务一起使用的格式。
答案 0 :(得分:1)
看起来像JSON。有什么阻止您执行data = JSON.parse(content)
并使用keys(data)
为密钥和data[i]["value"]
为值迭代键值?
尝试这样的事情:
var data = [];
for(var i in event.filters){
data.push({"key": i, "value": event.filters[i].value});
}