Данные не поступают с правильным форматированием JSON, поэтому мне приходится циклически проходить по элементам в массиве, чтобы исправить форматирование, анализировать измененные элементы, и я не могу использовать новый объект (ы), когда все закончено, потому что онобольше не в массиве.Данные поступают следующим образом: data [datapoints: [0..1 ..] target: "up {cluster =" bluehills_c3260_cluster ", component =" atr ", datacenter =" bluehills ", hostname =" ny-153-177 "...}"] Есть ли более простой способ преобразовать это, используя функцию .map или другой метод, чтобы сделать вещи чище и получить желаемый результат?
Я пробовал несколько методов, включая .replace.map и .push.Я также попробовал JSON.stringify, но, похоже, ничего не работает, кроме того, что у меня есть в настоящее время.
onDataReceived(data) {
var i;
for (i = 0; i < data.length; i++) { // Loop through data array
var txt = data[i].target; // Create the variable to store the data target
var j;
for (j = 0; j <= txt.length; j++) { // Loop through the data target
var newObj = txt.slice(2,j); // Remove "up"
var filteredObj = newObj // Change over to JSON format...
.replace(/=/g,' : ')
.replace(/,/g,', ')
.replace(/{/g,'{ ')
.replace(/cluster/g,'"cluster"')
.replace(/component/g,'"component"')
.replace(/datacenter/g,'"datacenter"')
}
var dataObj = filteredObj.replace(/_"cluster"/gi,'_cluster');
var finalObj = JSON.parse(dataObj);
console.log("finalObj", dataObj);
}
}
То, что я хочу, - это один массив с правильным форматом JSON для данных (цели), поступающих в.