【问题标题】:JSON.stringify of Parse.Object.extend returns "[object Object]"Parse.Object.extend 的 JSON.stringify 返回“[object Object]”
【发布时间】:2015-11-11 07:50:11
【问题描述】:

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

例如,我有一个包含“名称”和“距离”字段的 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]"

可以解决吗?

【问题讨论】:

  • 试试console.log(typeof nearby) ?我怀疑nearby 已经是一个字符串。也试试console.log(nearby)
  • I would like JSON.stringify(nearby) to output 您希望在代码中的哪个位置出现这种情况?
  • stackoverflow.com/questions/16493498/…nearby 上可能会调用toString
  • @PrashanthChandra 你是对的。简单地做 console.log(nearby) 神奇地工作。请将此作为答案发布?这样我可以接受吗?

标签: javascript json parse-platform tostring


【解决方案1】:

你需要使用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,并将其从对象转换为字符串,因此您可以将其属性用作字符串。

【讨论】:

  • 情况并非如此,尝试转换为字符串并失败正是我问题的本质。请考虑重新阅读并提出编辑建议以提高清晰度。
【解决方案2】:

试试console.log(typeof nearby) 看看它是什么?我怀疑nearby 已经是一个字符串了。
因此console.log(nearby) 应该可以工作。

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

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 2017-12-30
    • 2013-05-05
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多