javascript - JS对象的Stringify添加额外的数据

标签 javascript jquery ajax json

在获得一些关于 SO 的巨大帮助后,我使用以下代码片段构造了一个 JS 对象:

var noticeMap = $('#preExamNoticesTable tbody tr').map(function() {
    var $cells = $(this).children();
    return {
      sequence: $cells.eq(0).children('input').val(),
      noticeUID: $cells.eq(1).text()
    };
});

生成的 notificationMap 示例如下所示(来自 firebug):

jQuery(Object { sequence="1", noticeUID="JP-L23013663997630352308"},
Object { sequence="3", noticeUID="JP-L22913664089460612172"}, 
Object { sequence="4", noticeUID="JP-L22913664090188631530"}, 
Object { sequence="2", noticeUID="JP-L22913664089408651799"})

当我尝试 JSON.stringify(noticeMap) 时,它工作得很好,除了它向我不想通过 POST 传递的字符串添加额外的数据之外。它为每个值(noticeMap 中的对象)生成数字键,但在最后一个所需的 k:v 对之后,我的字符串还具有 context objlengthprevObject 对象。这是我 stringify() 并 POST 之后的 JSON:

{ "0": { "sequence": "1", "noticeUID": "JP-L23013663997630352308" }, "1": { "sequence": "3", "noticeUID": "JP-L22913664089460612172" }, "2": { "sequence": "4", "noticeUID": "JP-L22913664090188631530" }, "3": { "sequence": "2", "noticeUID": "JP-L22913664089408651799" }, "length": 4, "prevObject": { "0": {}, "1": {}, "2": {}, "3": {}, "length": 4, "prevObject": { "0": { "location": {}, "jQuery19105836315711643562": 1 }, "context": { "location": {}, "jQuery19105836315711643562": 1 }, "length": 1 }, "context": { "location": {}, "jQuery19105836315711643562": 1 }, "selector": "#preExamNoticesTable tbody tr" }, "context": { "location": {}, "jQuery19105836315711643562": 1 } }

我无法弄清楚是什么导致了这种情况的发生。我开始假设它与 stringify 如何处理从对象的 obj 创建 JSON 字符串有关,但后来我无法使用我的 noticeMaps() ,它现在工作得很好。有什么想法吗?

谢谢!

最佳答案

您正在序列化 jQuery 对象,因此其中的所有可序列化属性都将包含在输出中。试试这个:

JSON.stringify(noticeMap.get()); // .get will return an array

关于javascript - JS对象的Stringify添加额外的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200215/

相关文章:

javascript - 查找最长的元音子串

javascript - 有没有办法在加载 DOM 之后但在执行任何页面脚本之前运行 Google Chrome 内容脚本?

javascript - 如何在数据网格中显示由具有属性和值的对象组成的数组?

jquery - IE 用户无法填写我的搜索输入字段

javascript - ReactJS中带有表单的组件不断刷新页面

javascript - 表单验证( Angular )

jQuery 验证插件 : accept only alphabetical characters?

java - 使用 ajax get 发送数据时出现错误

jquery - 链接一系列 ajax 调用

ajax - 基于 Razor 的 MVC 与 MVC 4 中的单页应用程序