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.stringify忽略不是有效 JSON 的值,包括undefinedFunction

如果你真的想要,你可以使用replacer参数(虽然不确定这将如何跨浏览器)并解决这个问题。这个函数基本上会检查值是否是一个函数,它会返回函数名。在您的示例中,它将 return "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 回答