1

私はこのjsonオブジェクトを持っています:

values: {
    username: { type: String, unique: true },
    password: { type: String }
}

実行すると、次のJSON.stringify(values)ようになります。

{"username":{"unique":true},"password":{}}

省略しtype: Stringます。

回避策はありますか?

4

2 に答える 2

4

引用符を含めてみてください:

values: {
  username: { type: "String", unique: true },
  password: { type: "String" }
}
于 2012-11-29T02:26:32.187 に答える
1

JSON.stringifyundefinedおよびを含む、有効な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

于 2012-11-29T02:33:48.053 に答える