为什么JSON.stringify只包含此对象的一部分?

时间:2012-10-03 20:23:19

标签: javascript json object parse-platform stringify

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

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


    // load races from Parse    
    var Events = Parse.Object.extend("Events");
    var query = new Parse.Query(Events);

    query.equalTo("theYear", currentYear);
    query.ascending("sortOrder");       

    query.find({
      success: function(results) {
        forgeLog("Got "+results.length+" Events from Parse");

        forgeLog("First object in array logged directly:");
        forgeLog(results[0]);

        forgeLog("First object in array with stringify:");
        forgeLog(JSON.stringify(results[0]));
      },
      error: function(error) {
          forgeLog("Error getting Events from Parse");  
      }
    });


直接记录的对象:


    { attributes: 
     { Name: 'McCalls Motorworks',
       raceId: '0',
       sortOrder: 2,
       theYear: 2012 },
    _operations: {},
    _dirty: {},
    _hashedJSON: {},
    _escapedAttributes: {},
    cid: 'c0',
    id: 'To6lLjzwQw',
    createdAt: '2012-08-09T13:51:29.259Z',
    updatedAt: '2012-08-10T13:23:07.280Z',
    _setting: false,
    _previousAttributes: 
     { Name: 'McCalls Motorworks',
       raceId: '0',
       sortOrder: 2,
       theYear: 2012 } 
    }

使用stringify记录的对象:


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

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

2 个答案:

答案 0 :(得分:0)

我已经检查了很多浏览器,但是一切正常,手动没有任何问题

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

尝试在某个对象中初始化它并在JSON.stringify中传递该对象可能有效

答案 1 :(得分:0)

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

  

这是因为createdAt,objectId,updatedAt不是属性。   它们是对象本身的属性,因此它们不被选中   通过JSON序列化程序。