字符串化时间戳对象

Stringify timestamp object

本文关键字:对象 时间戳 字符串      更新时间:2023-09-26

我如何JSON.stringify以下数据结构?

var Records = {
    1357775376232: {
        pageX: 0,
        pageY: 0,
        scrollLeft: 0,
        scrollTop: 0,
        target: #document,
        type: null,
        value: undefined
    },
    1357775376243: {
        pageX: 69,
        pageY: 10,
        scrollLeft: 0,
        scrollTop: 0,
        target: <a>,
        type: "click",
        value: ""
    }
    // ...etc...
};

看起来这个对象包含对documenta标记的引用。除非删除这些引用,否则无法对其进行序列化。

一个简单的解决方案是:

var arrayWithRefs = [...];
var arrayWithout = [];
for (var i = 0; i < arrayWithRefs.length; i++) {
  arrayWithout[i] = {
    safeProperty: arrayWithRefs[i].safeProperty;
    // copy whatever you want, omitting document references
  };
}
var serialized = JSON.stringify(arrayWithout);

当然,有一些库可以帮助你提取你想要的属性。我推荐下划线(一般用途)或cryo(正是你想要的):

  • underscorejs.org
  • cryojs

不使用普通对象,而是对元素使用XPath。