Переменная не могу понять в чем проблема. Как узнать тип?
Проблема такая. Есть скрипт, он строит дерево. Дерево задается в js коде так:
var elements = [{"id":0,"content":"Root","children":[{"id":1,"content":"Data 1","children":[{"id":2,"content":"Data 2","children":[{"id":3,"content":"Data 3","children":[{"id":4,"content":"Data 4","children":[]}]}]}]}]}];
Но, от руки его задавать не нужно, я такую стуктуру получаю от php файла, который ее формирует. Если взять скопировать сформированное дерево и вставить в переменную elements, то все чудесно, но если присвоить var elements = data , где data содержит
[{"id":0,"content":"Root","children":[{"id":1,"content":"Data 1","children":[{"id":2,"content":"Data 2","children":[{"id":3,"content":"Data 3","children":[{"id":4,"content":"Data 4","children":[]}]}]}]}]}]
то есть тоже самое, то ничего не работает. Провел эксперимент - перевел в строку то что задаю копированием простым и то что задаю присвоением и измерил длину. Так вот, длина того что задано копированием 15, длина присвоенного 205. Если вывести содержимое, то оно идентично до символа. Где искать проблему, подскажите? |
отладчиком в IE увидел тип который определяется для переменной в случае когда все работает.
![]() С переменной elements все чудесно работает с elements1 - нет. Нужно привести к типу elements. Как привести переменную к первому типу? |
Цитата:
|
Вы меня спасли! Спасибо!
|
на всякий случай:
var json = JSON.parse('{"foo" : 0, "bar" : 1}');
for(i in json) {
if(json.hasOwnProperty(i)) {
alert(i + ': ' +json[i]);
}
}
ну и или так:
var data = "{'foo' : 0, 'bar' : 1}",
json = eval('('+data+')');
for(var i in json) {
if(json.hasOwnProperty(i)) {
alert(i + ': ' +json[i]);
}
}
|
| Часовой пояс GMT +3, время: 17:13. |