JSON является неструктурированным и не соответствует многим моим
требования. Я пробовал это много способов, но это занимает очень много времени
когда я предоставлю 100 000 записей
Реализованный код
for (var f in stack.data) {
var field = new Object();
for (var o in stack.data[f]['field_values']) {
field[stack.data[f]['field_values'][o]['field_name']] = stack.data[f]['field_values'][o]['value'];
}
stack.data[f]['field_values'] = field;
}
console.log(JSON.stringify(stack, null, 2));
Ввод JSON:
var stack = {
"data": [{
"id": 950888888073,
"name": "www.stackoverflow.com",
"field_values": [{
"field_name": "Newsletter?",
"value": true
},
{
"field_name": "Parent",
"value": 950888661
},
{
"field_name": "Birthday",
"value": "2018-04-29"
},
{
"field_name": "Related matter",
"value": 1055396205
},
{
"field_name": "Referral",
"value": "Don Ho"
},
{
"field_name": "Spouse",
"value": "Wo Fat"
}
]
}]
}
Ожидаемый результат:
{
"data": [
{
"id": 950888888073,
"name": "www.stackoverflow.com",
"field_values": {
"Newsletter?": true,
"Parent": "Gigi Hallow",
"Birthday": "2018-04-29",
"Related": "2012-00121-Sass",
"Referral": "Don Ho",
"Spouse": "Wo Fat"
}
Иногда "field_values" могут быть пустыми. Также необходимо проверить их
{
"id": 950821118875,
"name": "www.google.com",
"field_values": [],
}
Это в основном перераспределение значений. Здесь значения становятся ключами. На самом деле должен быть один вкладыш, чтобы справиться с этим, но у меня закончились варианты.
Надеюсь, вопрос ясен