准备一个json对象以传递控制器

时间:2010-12-20 05:42:29

标签: javascript jquery asp.net-mvc json asp.net-mvc-2

我有一个具有ul li HTML结构的树。

在每个li中都有一个包含树的节点名称的span。

我必须在阅读树之后制作一个json对象,它应该看起来像这样的东西

        this.orgStructureId = null; 
        this.name = null;
        this.nodeList = null; 
        this.parent = null;
        this.list = null;

我不确定它是结构还是有些类似的东西。如何制作这个对象你需要更多的输入来制作json对象。

http://i.stack.imgur.com/9itqx.jpg 树样本快照

2 个答案:

答案 0 :(得分:0)

var json = {};
$('li').each(function(){
    json[this.innerHTML] = null;
})

然后你只需要序列化它

答案 1 :(得分:0)

树在服务器上生成

如果您的树是在服务器端生成的,您也可以将其JSON字符串添加到HTML并使用预先准备好的JSON数据,而不是在客户端生成...

<ul id="TreeRoot" data="{ name: 'Some name', ... }">
    <li>...</li>
    ...
</ul>

然后致电

var data = $.parseJSON($("#TreeRoot").attr("data"));

并且您将获取要发送到服务器的JSON数据。但是会有另一个障碍......将数据传递给控制器​​行动。

我建议你阅读this blog post about sending JSON data,这会让你的生活更轻松......

在客户端

上生成树

如果用户在客户端上生成/编辑了您的树,则除了以下任一选项之外没有其他选项:

  • 遍历层次结构数据的DOM元素并生成JSON
  • 在用户创建树时生成JSON数据,并在运行中准备好并使用最终结果

我可能会选择第二个,因为无论如何你都会操纵数据。那么为什么不生成HTML节点并填充变量呢。