2014-04-27 2 views
0

У меня есть следующие входящие данные JSON (обратите внимание, что в нем есть запятая).Преобразование данных JSON в массив JavaScript

var data = '["QUAIL, TX","QUAKER CITY, OH","QUAKER, CT","QUAKER STREET, NY"]'; 

Теперь я хочу преобразовать его в массив JavaScript, но не уверен, что это лучший подход для этого? Я попытался использовать JSON.parse (data), который генерирует исключение, и я попытался разделить данные на «», но он сначала получает и получает неправильное значение. Любая идея, какая у вас лучшая стратегия?

 data = JSON.stringify(data); 
    data = data.split('",'); 
.

PS:. Я посмотрел на большинство вопросов, но ни один из них не был актуален здесь

+0

Попробуйте преобразовать данные в массив javascript: 'var data = data'. Теперь 'data' будет массивом. – dfsq

+0

Какое исключение? – thexacre

+0

Какова ваша проблема? – cepharum

ответ

1

Запятые в JSON строка не вызовет JSON.parse() бросить исключение. Смотрите этот код:

var a = '["QUAIL, TX","QUAKER CITY, OH","QUAKER, CT","QUAKER STREET, NY"]'; 
var b = JSON.parse(a); 
alert(b[0]); 

Fiddle: http://jsfiddle.net/sTuSV/

Это о чем-то отличается ошибиться с кодом.

0

это похоже на работу - но я предполагаю, что вы дали «это» ваша структура данных Если ваш JSON отличается, то то, что у меня ниже, не будет работать.

var data = ["QUAIL, TX","QUAKER CITY, OH","QUAKER, CT","QUAKER STREET, NY"].toString().split(','); 

//returns ["QUAIL", " TX", "QUAKER CITY", " OH", "QUAKER", " CT", "QUAKER STREET", " NY"] 

, если вы хотите избавиться от белого площадь:

var data = ["QUAIL, TX","QUAKER CITY, OH","QUAKER, CT","QUAKER STREET, NY"].toString().replace(/\s/g,'').split(','); 
    // returns ["QUAIL", "TX", "QUAKERCITY", "OH", "QUAKER", "CT", "QUAKERSTREET", "NY"] 
Смежные вопросы