2015-03-20 4 views
-1

Я получил массив JSON из бэкэндом в below.I не мог получить доступ к JSON arraryНевозможно получить доступ к JSON arrary

var res = '[100, 200]'; 

При попытке доступа с помощью alert(res[0]); я получаю первый символ «[». Я предполагаю получить «100».

Может ли кто-нибудь сказать, что может быть проблемой?

UPDATE: - Он работает нормально, если массив имеет номер. Он дает ошибку, если массив имеет альфаномический характер.

var res = '[/csv/8_copy 2.csv, /csv/9_copy 2.csv]'; 
alert(JSON.parse(res)[0]); 
+0

Um , это строка, чувак. Вам нужно преобразовать его из строки JSON в конструкцию JavaScript. –

+0

Я не могу напрямую изменить значение массива, поскольку он поступает с сервера. Есть ли способ добавить двойную кавычку («) для каждого элемента? –

+0

Затем ваш сервер не отправляет вам JSON. Разбирайте его в соответствии с правилами формата, указанными в документе спецификации сервера. –

ответ

3

Ваша потребность разобрать строку JSON:

var res = '[100, 200]'; 
 

 
alert(JSON.parse(res)[0]);

+0

Выше работает, но я получаю синтаксическая ошибка, если массив имеет буквенный символ. У меня возникла ошибка, когда я попытался с var res = '[/ csv/8_copy 2.csv,/csv/9_copy 2.csv]'; alert (JSON.parse (res) [0]); что может быть проблемой? –

+1

Это не правильная строка JSON, потому что в элементе массива отсутствуют кавычки. Они должны быть такими: '' ["/ csv/8_copy 2.csv", "/ csv/9_copy 2.csv "] ';' –

+0

Я не могу напрямую изменить массив val, поскольку он поступает с сервера. Можете ли вы рассказать мне, как добавить двойную кавычку (") для каждого элемента? –

1

Если вы хотите использовать JSON как данные, вы должны разобрать его.

var res = JSON.parse('[100, 200]'); 
0

Использование JSON.parse.

var result = JSON.parse('[100, 200]'); 
alert(result[0]); 
0

код вы вывесили говорит, что ваш var res равно строке (не массив).

Это означает, что метод доступа к массиву, который вы пытаетесь, не будет работать, пока вы не разобрали строку в массив.

Вы можете использовать JSON.parse(), чтобы изменить строку в массив:

var res = '[100, 200]'; 
var resParsed = JSON.parse(res); 

Затем вы можете получить доступ к элементам массива, как вы пытаетесь до:

alert(resParsed[0]); 
Смежные вопросы