Code:
var value = '[{"{#SNMPINDEX}":"5003","{#POWERSUPPLYNAME}":"Sw 5, PS1 Normal, RPS NotExist"},{"{#SNMPINDEX}":"6003","{#POWERSUPPLYNA ME}":"Sw6, PS1 Normal, RPS NotExist"},{"{#SNMPINDEX}":"7003","{#POWERSUPPLYNA ME}":"Sw7, PS1 Normal, RPS NotExist"}]';
function nameparser(value){
var value2 = '';
value = value.split('},{');//to array
value.push(value.pop().slice(0,-2));
for (var val of value) {
var swnum = val.match(/"{#POWERSUPPLYNAME}":"Sw(itch )?[1-8]/);
if (swnum != null){
swnum=swnum.toString().slice(0, -1);
swnum = swnum.replace('"{#POWERSUPPLYNAME}"','"{#SWNUM}"') ;
}else{
swnum='"{#SWNUM}":"nostack'
}
value2 = value2 + val + "," + swnum +'"},{';
}
value=value2.slice(0,-3)+"}]";
return(value);
}
value = nameparser(value)
console.log(value);
Пихаю в предобработку дискавера внутренности функции, а заббикс 6.2 ругается SyntaxError: parse error (line 4)
Т.е. ему не нравится
for (var val of value) {
Что я делаю не так?
Смысл скрипта дёрнуть из {#POWERSUPPLYNAME} номер свича и положить его в отдельный макрос {#SWNUM}
Вывод такой:
[{"{#SNMPINDEX}":"5003","{#POWERSUPPLYNAME}":"Sw 5, PS1 Normal, RPS NotExist","{#SWNUM}":"Sw5"},{"{#SNMPINDEX}":"6003" ,"{#POWERSUPPLYNAME}":"Sw6, PS1 Normal, RPS NotExist","{#SWNUM}":"Sw6"},{"{#SNMPINDEX}":"7003" ,"{#POWERSUPPLYNAME}":"Sw7, PS1 Normal, RPS NotExist","{#SWNUM}":"Sw7"}]
Comment