如果我有一个如下所示的列表:
<ul class="nameList">
<li value="1">Bob</li>
<li value="2">Frank</li>
<li value="3">Sally</li>
</ul>
我如何将其转换为 json 对象,如下所示:
[{"id":"1","title":"鲍勃"},
{"id":"2","title":"弗兰克"},
{"id":"3","title":"弗兰克"}]
我需要将该数据转换为该格式,以便我可以将其在 $.post() 回调中传递回我的 php 服务器。
有人可以告诉我如何使用 jQuery 从该列表中获取项目并将它们转换为上面的 json 吗?
jQuery 实际上有一些内置的东西可以用来构建数组:map() http://docs.jquery.com/Utilities/jQuery.map#arraycallback
var items = $('.nameList').find('li').map(function() {
var item = { };
item.id = this.value;
item.title = $(this).text();
return item;
});
这将构建一个与您想要的 JSON 结构相匹配的对象数组。然后,要进行 JSON 序列化,请使用 JSON.stringify,它内置于较新的浏览器中,并且可通过包含json2.js http://www.json.org/:
// Produces [{'id':1,'title':'bob'},{etc},{etc}]
var json = JSON.stringify(items);
另请记住,$.post() 自动序列化对象数据参数,如 key1=value1&key2=value2&etc。除非您在服务器端严格需要 JSON,否则可能不需要 JSON 序列化步骤。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)