JSON.stringify Parse.Object.extend returns “[对象对象]”

JSON.stringify of Parse.Object.extend returns "[object Object]"

如何为自定义解析对象扩展/实现 toString?

举例来说,我有一个包含 "name" 和 "distance" 字段的 Parse 对象。

var NearBy = Parse.Object.extend("NearBy");
new Parse.Query(NearBy).first().then(function(nearby) {
    nearby.get("name") // = maxim
    nearby.get("distance") // = 3
})

我希望 JSON.stringify(nearby) 输出 { "name" : "maxim", "distance" : 3" },而不是转储 "[object Object]"

可以修复吗?

您需要使用JSON.stringify(nearby)

原因很简单,现在你有一个json对象,它没有被转换成任何字符串,它只是一个对象。所以当你 运行 时,你会看到:

[object object]

因为现在您手头有两个 JSON 类型的对象,您需要将它们字符串化,以便将它们视为字符串而不是文字对象。

您的代码应如下所示:

var NearBy = Parse.Object.extend("NearBy");
new Parse.Query(NearBy).first().then(function(nearby) {
    nearby.get("name") // = maxim
    nearby.get("distance") // = 3
    JSON.stringify(nearby);
})

通过这种方式,您可以获取 json,并将其从对象转换为字符串,因此您可以将其属性作为字符串使用。

尝试console.log(typeof nearby)看看它是什么?我怀疑 nearby 已经是一个字符串。
因此 console.log(nearby) 应该有效。

JSON.stringify returns "[object Object]" instead of the contents of the object