2014-12-04 4 views
0

У меня есть два локальных файла JSON. Я хочу добавить свойство одного объекта из одного файла в соответствующий объект в другом файле.Добавление свойств объекта из одного файла данных JSON в другой

Вот пример ..

Array1:

[ 
    { 
    "id": 1, 
    "username": "Joe Smith", 
    "pic": "images/profile/Joe_smith.jpg" 
    }, 
    { 
    "id": 2, 
    "username": "Jane Smith", 
    "pic": "images/profile/Jane_smith.jpg" 
    } 
] 

array2:

[ 
{ 
    "id": 3, 
    "userId": 1, 
    "profession": "dentist" 
}, 
{ 
    "id": 4, 
    "userId": 2, 
    "profession": "pilot" 
} 

Идея заключается в том, чтобы добавить "ПИК" имущество от Array1 к нужному объекту в array2 , Если id из Array1 соответствует userId из Array2, это правильное совпадение. Array2 бы в конечном итоге выглядит так:

[ 
{ 
    "id": 3, 
    "userId": 1, 
    "profession": "dentist", 
    "pic": "images/profile/Joe_smith.jpg" 
}, 
{ 
    "id": 4, 
    "userId": 2, 
    "profession": "pilot", 
    "pic": "images/profile/Jane_smith.jpg" 
} 

После этого я буду использовать угловую отображать имя с лицом. Надеюсь, я объяснил это нормально. Любая помощь приветствуется!

+0

Кажется так же просто, как разбор JSON, итерация по обеим массивам и объединение отдельных объектов. Есть ли что-то, в чем вы испытываете проблемы? Вы знаете, как разбирать JSON? Как перебирать массив? –

+0

Я знаю, как перебирать массив, и похоже, что в этом случае мне может понадобиться сделать это дважды. Однако разборная вещь для меня нова. – user3802738

+0

[Parse JSON в JavaScript?] (Http://stackoverflow.com/q/4935632/218196) –

ответ

0

Просто для удовольствия. В этом примере используется https://lodash.com.

var people = [ 
    { "id": 1, "username": "Joe Smith", "pic": "images/profile/Joe_smith.jpg" }, 
    { "id": 2, "username": "Jane Smith", "pic": "images/profile/Jane_smith.jpg"}, 
    { "id": 3, "username": "I play too much games", "pic": "images/profile/toomuch.jpg"} 
]; 

var professions = [ 
    { "id": 3, "userId": 1, "profession": "dentist" }, 
    { "id": 4, "userId": 2, "profession": "pilot" } 
]; 

var workers = _.map(people, function(human) { 
    var work = _.findWhere(professions, { 'userId': human.id }); 
    return _.extend(human, work ? work : { 'profession' : 'unemployed' }); 
}); 

console.log(workers); 
Смежные вопросы