将对象推送到JSON文件子数组/对象

时间:2017-06-14 13:25:40

标签: javascript jquery json node.js

欢迎使用JS或Node.js解决方案

我有一个带有以下结构的json文件(我删除了一些不必要的部分)

{
  "post": {
    "sample_post": {
      "slug": "/sample"
    }
  }
}

我想推送一个像"sample_post"这样的新对象数组,有人建议将此数组更改为

{
  "post": [{
    "sample_post": {
      "slug": "/sample"
    }
  }]
}

使用推送,但我收到错误,如data.push不是函数,因为我使用jquery来获取外部json我不知道这是否导致错误

4 个答案:

答案 0 :(得分:1)

根据您的代码:

var data = {
  "post": {
    "sample_post": {
      "slug": "/sample"
    }
  }
}

您必须使用临时变量来存储新数组:

var _tmp = []
_tmp.push(data.post)

并覆盖您的初始数据

data.post = _tmp

答案 1 :(得分:0)

我不确定你想要的只是:

var test = {
  "post": {
    "sample_post": {
      "slug": "/sample"
    }
  }
};

test.post = [test.post];

答案 2 :(得分:0)

如果您准备如下所示的对象,

var obj = {
  "post": [{
    "sample_post": {
      "slug": "/sample"
    }
  }]
}

然后你应该以任何一种方式将对象添加到“post”数组中。

obj.post.push({"key": "value"})

obj["post"].push({"key": "value"})

答案 3 :(得分:0)

要使用push函数,该对象应为Array类型。但在你的情况下它是一个json对象。因此,您首先需要通过空白数组初始化它来制作数组。即data.post = []或直接使用带有必需元素的数组。在此之后你可以使用push in post.push()。 希望这有帮助!