【问题标题】:Why does JSON.stringify only include part of this object?为什么 JSON.stringify 只包含这个对象的一部分?
【发布时间】:2012-09-24 20:11:52
【问题描述】:

当我在 Parse.com 查询对象上使用 JSON.stringify 时,它只包含“属性”而忽略其余部分。如何对整个对象进行字符串化?

我对 Parse 的查询,使用和不使用 stringify 记录结果:

// 从 Parse 加载比赛 var Events = Parse.Object.extend("Events"); var query = new Parse.Query(Events); query.equalTo("theYear", currentYear); query.ascending("sortOrder"); 查询.find({ 成功:函数(结果){ forgeLog("Got "+results.length+" 解析事件"); forgeLog("数组中的第一个对象直接记录:"); 伪造日志(结果 [0]); forgeLog("字符串化数组中的第一个对象:"); forgeLog(JSON.stringify(results[0])); }, 错误:函数(错误){ forgeLog("从 Parse 获取事件时出错"); } });

直接记录的对象:

{ 属性: { 名称:“麦考尔斯汽车厂”, 种族ID:'0', 排序顺序:2, 年份: 2012 }, _操作:{}, _肮脏的: {}, _hashedJSON: {}, _escapedAttributes:{}, cid: 'c0', id: 'To6lLjzwQw', createdAt: '2012-08-09T13:51:29.259Z', 更新时间:'2012-08-10T13:23:07.280Z', _设置:假, _previous属性: { 名称:“麦考尔斯汽车厂”, 种族ID:'0', 排序顺序:2, 年份:2012 } }

使用 stringify 记录的对象:

{"Name":"McCalls Motorworks","raceId":"0","sortOrder":2,"theYear":2012}

更新:我实际上只是测试了自己,当我通过剪切和粘贴第一个对象并自己定义变量来手动定义对象时,它可以工作。但是,当我在从 Parse 接收结果后直接对结果进行字符串化(如示例代码中所示)时,它只返回属性部分......但第一个对象是我在尝试从 Parse 记录结果之前直接从控制台复制的内容字符串化。

【问题讨论】:

  • 在哪个平台上?在 Safari 6.0.1 中对我来说工作正常
  • Seems fine to me 也是(在 Chrome 22 中测试)。
  • 请定义“整个对象”。究竟缺少什么?
  • @LewisDiamond 他似乎很清楚这一点:“包括“属性”并忽略其余部分。'
  • @Barmar "attributes" 可以引用对象的属性,也可以引用他的称为“attributes”的属性,或者其他的东西。他粘贴的输出是输出?还是输入?他的意思是 stringify 丢弃了这些功能吗?或者是其他东西。这个问题当然需要澄清。

标签: javascript json object parse-platform stringify


【解决方案1】:

是的,我也检查了许多浏览器,但一切正常,手动操作没有任何问题

我认为您在 JSON.stringify 中直接设置解析器值有时会发生在 js

尝试一件事,在某个对象中初始化它,然后在JSON.stringify 中传递该对象可能会起作用

【讨论】:

    【解决方案2】:

    Parse 的 Héctor 能够向我解释:

    这是因为 createdAt、objectId、updatedAt 不是属性。 它们是对象本身的属性,因此不会被拾取 由 JSON 序列化程序完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2013-05-12
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多