我有一个带有以下结构的json文件(我删除了一些不必要的部分)
{
"post": {
"sample_post": {
"slug": "/sample"
}
}
}
我想推送一个像"sample_post"
这样的新对象数组,有人建议将此数组更改为
{
"post": [{
"sample_post": {
"slug": "/sample"
}
}]
}
使用推送,但我收到错误,如data.push
不是函数,因为我使用jquery来获取外部json我不知道这是否导致错误
答案 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()。 希望这有帮助!