2016-01-26 8 views
-2

Моя строка выглядит так:Преобразовать строку Json в Javascript

"['01',746],['02',0],['03',9994],['04',0],['05',0],['06',0],['07',0],['08',0],['09',0],['10',0],['11',0],['12',0],['13',0],['14',0],['15',0],['16',0],['17',0],['18',0],['19',0],['20',0],['21',0],['22',0],['23',0],['24',0],['25',0],['26',0],['27',0],['28',0],['29',0],['30',0],['31',0]" 

Я попытался $ .parseJSON() или JSON.parse(), но не работает. Я собираюсь использовать эти данные для диаграммы google. поэтому мне это нужно в формате json.

как я могу это сделать?

+6

, поскольку одинарные кавычки недействительны в JSON, и это не допустимый формат массива. – epascarello

+1

Как вы создаете эту строку? Вы должны исправить это поколение –

+1

a/это не json, потому что одинарные кавычки. b/это не json, потому что кома разделяет значения вне массива или объект c/this не является json из-за внешних двойных кавычек. – njzk2

ответ

4

Вам необходимо преобразовать одинарные кавычки в двойное значение, чтобы оно было действительным, и вам нужно будет обернуть его в [], чтобы он был допустимым форматом массива.

var str = "['01',746],['02',0],['03',9994],['04',0],['05',0],['06',0],['07',0],['08',0],['09',0],['10',0],['11',0],['12',0],['13',0],['14',0],['15',0],['16',0],['17',0],['18',0],['19',0],['20',0],['21',0],['22',0],['23',0],['24',0],['25',0],['26',0],['27',0],['28',0],['29',0],['30',0],['31',0]"; 

var myArray = JSON.parse("[" + str.replace(/'/g,'"') + "]"); 
console.log(myArray[0][0], myArray[0][1]); // "01" 746 

Но лучшим решением будет исправить то, что производит эту строку, так что действительный объект JSON, чтобы начать.