У меня есть json-файл, который возвращается из службы am using. Я не контролирую службу, поэтому не могу изменить структуру json-файла. Файл выглядит примерно так:Создать новый объект массива из существующего объекта
menu":[
{
"section":"theMobileMenu",
"key":"menuItem1Title",
"content":"Mobile context and principles"
},
{
"section":"theMobileMenu",
"key":"menuItem1Link",
"content":"/mobile/index.html"
},
{
"section":"theMobileMenu",
"key":"menuItem2Title",
"content":"Global guidelines"
},
{
"section":"theMobileMenu",
"key":"menuItem2Link",
"content":"/mobile/global-guidelines.html"
},
{
"section":"theMobileMenu",
"key":"menuItem3Title",
"content":"First impressions"
},
{
"section":"theMobileMenu",
"key":"menuItem3Link",
"content":"/mobile/first-impressions.html"
}
]
Я хочу создать массив объектов, как один ниже
"menu":[
{
"title":"Mobile context and principles",
"link":"/mobile/index.html"
},
{
"title":"Global guidelines",
"link":"/mobile/global-guidelines.html"
},
{
"title":"First impressions",
"link":"/mobile/first-impressions.html"
}
]
Я пытался что-то вроде:
var newData = []
var curData = {};
var x = 1;
$.each(data.menu, function(i, val) {
if(val.key == 'menuItem'+x+'Link'){
curData.link = val.content;
}
if(val.key == 'menuItem'+x+'Title'){
curData.title = val.content;
}
newData.push(curData)
curData = []
x++;
})
Это не работают очень хорошо. Любые идеи о том, как это сделать?
Пожалуйста, проверьте 'data' должен быть' data.menu'. –
Я отредактировал файл data.menu. Не имеет значения, хотя –
Это идет в цикл? вы можете это проверить? –