Дерево генерируется на сервере
Если ваше дерево генерируется на стороне сервера, вы также можете добавить его строку JSON в ваш HTML и использовать эти подготовленные данные JSON вместо создания на стороне клиента ...
<ul id="TreeRoot" data="{ name: 'Some name', ... }">
<li>...</li>
...
</ul>
Тогда просто позвоните
var data = $.parseJSON($("#TreeRoot").attr("data"));
и вы получите данные JSON для отправки на сервер. Но будет еще одно препятствие ... передача этих данных в действие контроллера.
Я предлагаю вам прочитать эту запись в блоге об отправке данных JSON , которая сделает вашу жизнь еще проще ...
Дерево генерируется на клиенте
В случае, если ваше дерево будет создано / отредактировано на клиенте пользователями, у вас не будет другого выбора, кроме как:
- Обход элементов DOM ваших данных иерархии и генерирование JSON
- генерирует данные JSON, пока пользователь создает дерево и готовит его на ходу и использует конечный результат
Я бы, наверное, пошел со вторым, потому что вы все равно будете манипулировать данными. Так почему бы не сгенерировать узлы HTML и не заполнить переменные.