私はこのjsonオブジェクトを持っています:
values: {
username: { type: String, unique: true },
password: { type: String }
}
実行すると、次のJSON.stringify(values)
ようになります。
{"username":{"unique":true},"password":{}}
省略しtype: String
ます。
回避策はありますか?
私はこのjsonオブジェクトを持っています:
values: {
username: { type: String, unique: true },
password: { type: String }
}
実行すると、次のJSON.stringify(values)
ようになります。
{"username":{"unique":true},"password":{}}
省略しtype: String
ます。
回避策はありますか?
引用符を含めてみてください:
values: {
username: { type: "String", unique: true },
password: { type: "String" }
}
JSON.stringify
undefined
およびを含む、有効なJSONではない値を省略しますFunction
。
本当に必要な場合は、パラメーターを使用してreplacer
(これがどのようにクロスブラウザーになるかはわかりません)、これを回避できます。この関数は基本的に、値が関数であるかどうかを検査し、関数名を返します。あなたの例で"String"
は、Stringはグローバルコンストラクター関数であるため、を返します。
JSON.stringify(your_object, function (key, value) {
if (typeof value === "function") {
return value.name; // or value.toString() for the function body/declaration
}
return value;
});
明確にするために、タイプとして文字列を使用する方が良いですが、そのときはジャンプするフープ"String"
はありません。String