首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用嵌套的EJSON类型编写toJSONValue方法?

使用嵌套的EJSON类型编写toJSONValue方法?
EN

Stack Overflow用户
提问于 2013-11-20 18:11:48
回答 1查看 168关注 0票数 4

我有两个自定义类型,BoardTile。两者都需要与EJSON兼容。但是,Board包含一个由Tile组成的二维数组:

代码语言:javascript
复制
function Board(size) {
  this.tiles = [];
  for (var row = 0; row < size; row++) {
    this.tiles[row] = [];
    for (var col = 0; col < size; col++) {
      this.tiles[row][col] = new Tile(row, col);
    }
  }
  /* ... */
}

我的问题是关于Board上的toJSONValue方法。我是否需要像这样显式转换嵌套的Tile

代码语言:javascript
复制
Board.prototype.toJSONValue = function() {
  var value = {};
  value.tiles = _.map(this.tiles, function(row) {
    return _.map(row, function(tile) {
      return tile.toJSONValue();
    });
  });
  return value;
};

或者嵌套的EJSON类型会自动转换,这样我就可以这样做了:

代码语言:javascript
复制
Board.prototype.toJSONValue = function() {
  return { tiles: this.tiles };
};

我怀疑第一种方法会导致我的Tile对象被当作普通对象对待,而不是使用我为它们定义的EJSON接口。但是第二种方式似乎是对toJSONValue方法的无效使用。这让我想知道是否可以用EJSON嵌套自定义类型

EN

回答 1

Stack Overflow用户

发布于 2014-03-24 02:40:29

JSON.stringify不仅可以在数组上工作,还可以在数组的数组上工作。例如,使用JavaScript控制台演示:

所以在您的例子中,您的最后一个函数,只有一行返回,应该可以工作。不是吗?

基本上,要创建自定义this article类型,您需要定义一种将数据表示为标准JSON可序列化类型(普通对象、数组等)的方法。您的数组数组已经是兼容的JSON可序列化类型,因此它应该按原样工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20092963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档