create dom tree from json data

by Alexey Zakharov

JavaScript

/* Создайте дерево из объекта */


 var data = {
  "Рыбы": {
    "Форель": {},
    "Щука": {}
  },

  "Деревья": {
    "Хвойные": {
      "Лиственница": {},
      "Ель": {}
    },
    "Цветковые": {
      "Берёза": {"Цветковые": {
      "Берёза": {},
      "Тополь": {}
    }},
      "Тополь": {"Цветковые": {
      "Берёза": {},
      "Тополь": {}
    },
"Цветковые2": {
      "Берёза": {},
      "Тополь": {}
    },
    "Цветковые": {
      "Берёза": {},
      "Тополь": {}
    },
"Цветковые3": {
      "Берёза": {"Цветковые": {
      "Берёза": {"Цветковые": {
      "Берёза": {},
      "Тополь": {"Цветковые": {
      "Берёза": {},
      "Тополь": {}
    }}
    }},
      "Тополь": {}
    }},
      "Тополь": {"Цветковые": {
      "Берёза": {},
      "Тополь": {}
    }}
    }}
    }
  }
};


var container = document.getElementById('container');
createTree(container, data); // создаёт

function isEmpty(obj) {
  for (var key in obj) {
    return false;
  }
  return true;
}

function createTree(container, data) {

	if(isEmpty(data)) return;
	var ul = document.createElement('ul');

	for(var k in data) {
		var li = document.createElement('li');
		li.appendChild(document.createTextNode(k));
		ul.appendChild(li);
		createTree(ul, data[k]);
	}

	container.appendChild(ul);	

}