0

ExpressがオブジェクトをJSONにシリアル化するために使用するアルゴリズムと、それを変更する方法があるかどうかを知りたいです。

オブジェクト自体のプロパティのみをシリアル化するため、他のオブジェクトから継承したオブジェクトを送信するのが難しいことに気付きました。また、値が。であるプロパティも省略されますundefined。機能的には、それらを省略することはそれらを含めることと同じであり、帯域幅を節約することを理解していますが、それらを含めると、APIの使用方法を理解しようとしているJSONを読んでいる人々にとってJSONを見つけやすくなります。

いずれにせよ、それはexpressがどのように物事を行うかについての質問であり、私のコードが何をすべきかについての質問ではありません:=)

4

2 に答える 2

7

シリアル化を行うのではなくexpress、標準のシリアル化方法stringifyを使用します。引数を使用して、シリアル化の方法にある程度の変更を加えることはできますが、値replacerを表示するように強制することはできません。undefined

于 2013-03-04T04:32:37.830 に答える
0

また、値が未定義のプロパティも省略されます。

値が未定義のプロパティはありません。存在しないプロパティを読み取ると、その値がundefinedに等しいためではなく、そのようなプロパティがないために返す値がないため、undefinedが返されます。

未定義のプロパティのセットは(無限大-定義された値)です。

var o = {};
o.x  // undefined

expressが以下のアルゴリズムを使用してプロパティを検索する場合、xは検索されません。

for (var key in o) {
    if (o.hasOwnProperty(key)) {
        console.log(o[key]);
    }
}
于 2013-03-12T20:30:58.367 に答える