我正在使用 jQuery 从一些 JSON 构建一个下拉列表,我正在获取该项目的完整数据并将其添加到稍后在 POST 请求中使用的 data-obj 中。我需要在数据中插入一条信息,但不知道如何执行。
当我从服务器收到数据时,数据如下所示:
{
"genreId": 1,
"genre": "Horror",
"genreGroup": "Fiction",
"Publishers": [{
"publisher": "Random House",
"books": [{
"book": "The Shining",
"releaseyears": [2012, 2013, 2014]
}]
}, {
"publisher": "Penguin",
"books": [{
"book": "Dracula",
"releaseyears": [2010]
}, {
"book": "Taking Lives",
"releaseyears": [2013, 2014]
}]
}]
}
我需要将派生字段“原始流派”添加到数据中,使其看起来像:
{
"genreId": 1,
"genre": "Horror",
"genreGroup": "Fiction",
"Publishers": [{
"publisher": "Random House",
"originalgenre": "Horror",
"books": [{
"book": "The Shining",
"releaseyears": [2012, 2013, 2014]
}]
}, {
"publisher": "Penguin",
"originalgenre": "Horror",
"books": [{
"book": "Dracula",
"releaseyears": [2010]
}, {
"book": "Taking Lives",
"releaseyears": [2013, 2014]
}]
}]
}
我认为相关代码是:
$(info.genre).each(function (i) {
var bookitem = $('<a/>', {
text: this.genre,
'data-value': this.genre,
'class': 'selectable',
'data-name': "G" + (this.genre),
'data-obj': JSON.stringify(this),
'data-target': 'booksection'
});
listGenres.append($("<li/>").append(bookitem));
[....do other things ...]
因此,当我添加 data-obj 元素时,我会获得可用的数据(就像在第一个代码块中一样,我需要在构建列表以添加额外字段之前对其进行修改。
有什么想法可以实现这一点吗?
最佳答案
$.each(data.Publishers, function(i, v) {
data.Publishers[i]['originalgenre'] = data.genre;
});
关于javascript - 如何使用 jQuery 修改 JSON 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24182260/