2016-01-05 17 views
-1

Я получаю data из базы данных, но когда я пытаюсь разобрать его с помощью json parse, возникает ошибка, указывающая, что это не действительный формат json. (поскольку его значения не указаны в кавычках).Анализ строки в объекте

Я не могу делать какие-либо изменения в data ценный & я предпочитаю не использовать replace, если это возможно!

var data = "a,b,c"; 
data = JSON.parse('['+ data +']'); //error because there is no quotation marks 

Есть ли другая функция JavaScript, которая может быть использована для анализа значения данных в формате JSON или даже массив.

+0

вобще 'уаг данных =«а, б, в "', no parsing – CoderPi

+0

что вы хотите вернуть? –

+0

повторите проверку кода, я исправил вопрос – Ash

ответ

3

Как сказано в комментариях, ваши данные не имеет формат JSON, так что не» Попробуйте разобрать его как JSON.

Вместо этого он представляет собой список значений, разделенных запятыми. Чтобы получить массив с этими значениями, вы можете использовать String.prototype.split.

И затем, чтобы обернуть каждый элемент в объекте, вы можете использовать Array.prototype.map:

"a,b,c".split(',').map(function(item) { 
    return {0: item}; 
}); 

Упрощая с ES6 arrow functions,

"a,b,c".split(',').map(i => ({0:i})); 
+0

Большое вам спасибо, вы спасли мою жизнь :) – Ash

3

Try:

var data = "a,b,c".split(','); 
obj = []; 
for (var i = 0; i < data.length; i++) 
{ 
    obj.push({'0': data[i]}); 
} 
2

использование сплит() метод, чтобы разделить вашу строку в массив подстрок

var data = "a,b,c"; 
data = data.split(','); 
arr = []; 

for(var i = 0; i < data.length; i++){ 
    arr.push({0: data[i]}) 
} 
console.log(data); 
console.log(arr); 
Смежные вопросы