2012-05-22 3 views
2

Я предполагаю, что это действительно основательно, и я пропускаю что-то очевидное.Как разбирать строку JSON в Javascript?

Я хочу, чтобы получить доступ к значениям в переменной называется graph_data, который держит следующий JSON объект:

graph_data= {"data":[0,0,0,0,0,0,0.1,0.4,0,0,8.2,7,5.1,0,0,0,0,0,0,0,0,0,0,0,0]} 

Когда я пытаюсь получить graph_data.data.length я получаю сообщение об ошибке, что graph_data.data является " не определенно».

Кажется, я не могу получить graph_data.data [0], чтобы вернуть что-либо.

Что мне здесь не хватает?

+2

работы для я ... Можете ли вы показать фактический код, который не работает и вызывает ошибку? – lonesomeday

+0

Это формат данных, или это то, что вы делаете, когда вы возвращаетесь от чего-то? как есть, он должен хорошо работать – kinakuta

+0

Он должен работать нормально. Попробуйте объявить переменную с помощью инструкции «var» - возможно, вы определите и получите доступ к переменной в разных областях. –

ответ

5

Ваш код работает отлично:

graph_data = {"data":[0,0,0,0,0,0,0.1,0.4,0,0,8.2,7,5.1,0,0,0,0,0,0,0,0,0,0,0,0]}; 
console.log(graph_data.data.length); // Outputs 25 

Вы уверены, что у вас есть объект буквальный, а не строку?

Если у вас есть последний вам нужно разобрать его с JSON.parse:

graph_data = JSON.parse('{"data":[0,0,0,0,0,0,0.1,0.4,0,0,8.2,7,5.1,0,0,0,0,0,0,0,0,0,0,0,0]}'); 

Вам нужен синтаксический анализатор для старых браузеров без встроенной поддержки JSON как json2.js

+0

A-ha! Вот и все. Мне нужно было JSON.Просмотреть его в объект. Похоже, это стало чередой, потому что я только что перешел на CakePHP 2.0 и переключился на новый XML-метод Xml :: toArray, который отображает XML в строку, а не в объект JSON. JSON.parse - это все работает и замышляет мои диаграммы jquery. Большое спасибо!! –

0

работает для меня ...

graph_data= {"data":[0,0,0,0,0,0,0.1,0.4,0,0,8.2,7,5.1,0,0,0,0,0,0,0,0,0,0,0,0]}; 

for (var i = 0; i < graph_data.data.length; i++){ 
    $("body").append(graph_data.data[i]+"<br/>"); 
} 

http://jsfiddle.net/mtDaH/

+0

Спасибо, что посмотрели Гомера. Очень признателен! –

Смежные вопросы