我有这个json对象:
values: {
username: { type: String, unique: true },
password: { type: String }
}
运行JSON.stringify(values)
时,我得到:
{"username":{"unique":true},"password":{}}
省略type: String
。
有任何解决方法吗?
答案 0 :(得分:4)
尝试包含引号:
values: {
username: { type: "String", unique: true },
password: { type: "String" }
}
答案 1 :(得分:1)
JSON.stringify
省略了无效JSON的值,包括undefined
和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
)没有可以跳过的箍。