【发布时间】:2018-12-30 22:43:32
【问题描述】:
我正在使用 Typescript。我想迭代下面的 json 文件并根据搜索字符串提取单个对象。
{
"menus": {
"indian": [
{
"id": "000123",
"name": "Dish 1"
},
{
"id": "000124",
"name": "Dish 2"
},
{
"id": "000125,
"name": "Dish 3"
}
],
"chinese": [
{
"id": "000126",
"name": "Dish 4"
},
{
"id": "000127",
"name": "Dish 5"
},
{
"id": "000128",
"name": "Dish 6"
}
],
"tandoori": [
{
"id": "000129",
"name": "Dish 7"
},
{
"id": "000130",
"name": "Dish 8"
},
{
"id": "000131",
"name": "Dish 9"
}
]
}
}
我会将响应 json 映射到我的模型类
export interface Menu {
indian: Item[];
chinese: Item[];
tabdoori: Item[];
}
export interface Item {
id: string;
name: string;
}
const response: Menu = this.myApiService.getAllMenus();
例如,我的输入是“indian”,那么我需要从 json 中提取对象
"indian": [
{
"id": "000123",
"name": "Dish 1"
},
{
"id": "000124",
"name": "Dish 2"
},
{
"id": "000125,
"name": "Dish 3"
}
]
我怎样才能得到这个?
【问题讨论】:
-
你试过
getAllMenus().menus.indian吗? -
"indian" 是对象中的属性名称。因此,正如 Colin 所说,您可以简单地引用该属性。但是,如果“indian”是来自某个搜索字段的变量内的值(例如,如果您有
searchTerm = "indian"这样的代码,您可能必须编写 ....menus[searchTerm],以便您可以使用字符串变量来访问该对象属性。一旦你有了它,就很容易循环遍历数组中的项目。
标签: arrays json reactjs typescript typescript2.0