итерация по объекту json массивов из ионного запроса 2

132
14

Наверное, я застрял в глупости. Я занимаюсь этим в течение последних нескольких часов и не вижу возможности понять это. По общему признанию, я новичок в ng/ionic2. Я пытаюсь выполнить ответ от моего запроса на отправку. Я получаю действительный (проверенный онлайн) большой, толстый объект JSON из моего собственного веб-ави. Это выглядит так:

 '"details": [{
"item_ID": "4",
"item_attribute_ID": "JiggyJamband_1_642",
"item_color_bool": "false",
"item_name": "Test Item 4",
"item_price": "18.95",
"item_desc": "4 This is a test of the ajax input",
"item_gender": "Girls"
},
{ ... },
"attributes": {
"JiggyJamband_1_642": [{
"color": "no-color",
"Xs": "80",
"Sm": "0",
"Med": "0",
"Lrg": "0",
"Xl": "0",
"Xxl": "10"
}],
"JiggyJamband_5_5664": [{
"color": "no-color",
"Xs": "0",
"Sm": "0",
"Med": "0",
"Lrg": "0",
"Xl": "0",
"Xxl": "50"
}],
{ ... }'

Я могу получить доступ к отдельным "деталям" и "атрибутам" следующим образом:

this.itemsDataService.getRemoteData(urlCode)
.subscribe(response => {
this.itemsJson = response;
this.dObj = this.boothItemsJson.details;
//this.aObj = this.boothItemsJson.attributes;
this.aObj = response["attributes"]["JiggyJamband_1_642"];
});

Мой провайдер выглядит следующим образом:

getRemoteData(urlCode): any {
return this.http.post('http://localhost/process-fe-app/_itemJson.php', JSON.stringify(urlCode))
.map(res => res.json()); }

Мой вопрос: детали в деталях динамичны и имеют атрибут item-attribute_ID, который связан как минимум с 1 ссылкой в атрибутах. Entrys для атрибутов также динамичен - каждый элемент может иметь несколько атрибутов. Ключи массива отдельных атрибутов являются статическими (размеры и цвета) и либо имеют значения, либо нет. Мне нужно иметь возможность перебирать объекты атрибутов (aObj) массивов и массивы внутри них. Мне не нужны инструкции ngFor или ngIf, так как эти данные не будут отображаться непосредственно. Данные json возвращаются просто отлично, но мне просто нужно иметь доступ к его методам вызова на основе данных (например, при вставке в хранилище с идентификатором атрибута в качестве ключа "JiggyJamband: color: no-color, xs: 50, s: 100... и т.д. "

То, что я пробовал: этот учебник https://www.youtube.com/watch?v=0kHJgw6Li_4, и googling, когда-либо повторявший формулировку этой проблемы, о которой я мог думать.

спросил(а) 2021-01-25T21:39:14+03:00 4 месяца, 4 недели назад
1
Решение
132

Возможно, эта тестовая итерация поможет вам обдумать это.

this.itemsDataService.getRemoteData(urlCode)
.subscribe(response => {
for(var k in response){
for(var k2 in response[k]){
console.log([k,k2,response[k][k2]]);
}
}
});

ответил(а) 2021-01-25T21:39:14+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема