我有一个看起来像这样的JSON结构
{
"messages":[
{
text: 'Some text'
},
{
text: 'Some text again'
},
{
text: 'Some text again again'
}
]
}
我想在最后一个text
对象中插入一个新对象,以便结构现在看起来像这样
"messages":[
{
text: 'Some text'
},
{
text: 'Some text again'
},
{
text: 'Some text again again',
"quick_replies": [
{
"title":"Loved it!",
"block_names": ["Block 1"]
},
{
"title":"test",
"block_names": ["Block 1"]
}
]
}
]
}
我尝试使用message[0].text.text.text = quick_replies...
但是我不认为解决方案会有效,因为,
会丢失并导致错误。
如何将新数据插入JSON结构?
答案 0 :(得分:2)
如果您想访问最后一条消息,请使用length - 1
:
myObj.messages[myObj.messages.length - 1].quick_replies = [
{
"title":"Loved it!",
"block_names": ["Block 1"]
},
{
"title":"test",
"block_names": ["Block 1"]
}
];
答案 1 :(得分:0)
考虑你的结构
{
messages:[
{
text: 'Some text',
},
{
text: 'Some text again',
},
{
text: 'Some text again again',
},
],
}
编辑最后一项:
messages[messages.length - 1].quick_replies = ...
在这里,我们将获得数组的大小,即3
,减去1
并访问数组中的元素。
为什么我们减去1
?因为数组从索引0
开始而不是1
。
答案 2 :(得分:-3)
使用Push方法:
var js = {
"messages":[
{
text: 'Some text'
},
{
text: 'Some text again'
},
{
text: 'Some text again again'
}
]
};
js.messages.push({
text: 'Some text again again',
"quick_replies": [
{
"title":"Loved it!",
"block_names": ["Block 1"]
},
{
"title":"test",
"block_names": ["Block 1"]
}
]
});