3

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...
};
4

2 に答える 2

4

このオブジェクトには、タグへの参照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);

そしてもちろん、必要なプロパティだけを取り出すのに役立つライブラリがあります。アンダースコア(汎用)またはクライオ(まさにあなたが試みているもの)をお勧めします:

于 2013-01-10T00:03:54.247 に答える
0

プレーンオブジェクトを使用する代わりに、要素にXPathを使用します。

于 2013-01-14T20:05:50.840 に答える