簡體   English   中英

訪問不在數組中的json子對象

[英]accessing a json child object not in an array

我正在嘗試訪問不在數組中的json子對象。 我嘗試使用下面的腳本訪問它,但無法正常工作。 我希望能夠訪問menuCategory對象

JSON

 [
  {
    "id": 67,
    "name": "Wednesday Menu",
    "serveDate": "2019-06-12 00:00:00",
    "expiryDate": "2019-06-12 16:11:00",
    "status": "APPROVED",
    "isEnabled": true,
    "meals": [
      {
        "id": 45,
        "name": "Waakye, Gari and Wele",
        "description": "A very well designed food for all kids",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 30,
        "status": "ENABLED"
      },
      {
        "id": 46,
        "name": "Gari and Beans",
        "description": "A very well designed food for all kidsss",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 12,
        "status": "ENABLED"
      }
    ],
    "menuCategory": {
      "id": 2,
      "name": "hello"
    }
  }
]

JAVASCRIPT

callEditMenu(parent, content) {
  this.modalService.open(content);
  this.editMenuCategoryId = parent.menuCategory.id;
}

可能像

 const parent = [{"id":67,"name":"Wednesday Menu","serveDate":"2019-06-12 00:00:00","expiryDate":"2019-06-12 16:11:00","status":"APPROVED","isEnabled":true,"meals":[{"id":45,"name":"Waakye, Gari and Wele","description":"A very well designed food for all kids","image":"","mealType":"LUNCH","unitPrice":30,"status":"ENABLED"},{"id":46,"name":"Gari and Beans","description":"A very well designed food for all kidsss","image":"","mealType":"LUNCH","unitPrice":12,"status":"ENABLED"}],"menuCategory":{"id":2,"name":"hello"}}] console.log(parent[0].menuCategory.id); 

如果callEditMenu函數中的parent參數引用您包含的JSON,請嘗試使用parent[0].menuCategory.id

let arr = [{"id":67,"name":"Wednesday Menu","serveDate":"2019-06-12 00:00:00","expiryDate":"2019-06-12 16:11:00","status":"APPROVED","isEnabled":true,"meals":[{"id":45,"name":"Waakye, Gari and Wele","description":"A very well designed food for all kids","image":"","mealType":"LUNCH","unitPrice":30,"status":"ENABLED"},{"id":46,"name":"Gari and Beans","description":"A very well designed food for all kidsss","image":"","mealType":"LUNCH","unitPrice":12,"status":"ENABLED"}],"menuCategory":{"id":2,"name":"hello"}}]

for (let item of arr)  {
  if (item.hasOwnProperty("menuCategory")) {
    console.log(item["menuCategory"]);
  }
};

let res = arr.filter((item) => item && item.menuCategory);
console.log(res[0].menuCategory);

萬一您需要動態查找。 以上是兩種不同的方式

考慮到對象數組中將有多個項目,您可以遍歷每個對象以獲取menuCategory名稱為

 let obj = [ { "id": 67, "name": "Wednesday Menu", "serveDate": "2019-06-12 00:00:00", "expiryDate": "2019-06-12 16:11:00", "status": "APPROVED", "isEnabled": true, "meals": [ { "id": 45, "name": "Waakye, Gari and Wele", "description": "A very well designed food for all kids", "image": "", "mealType": "LUNCH", "unitPrice": 30, "status": "ENABLED" }, { "id": 46, "name": "Gari and Beans", "description": "A very well designed food for all kidsss", "image": "", "mealType": "LUNCH", "unitPrice": 12, "status": "ENABLED" } ], "menuCategory": { "id": 2, "name": "hello" } } ]; obj.forEach(elem => { console.log(elem.menuCategory.name); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM