我以这种方式从远程服务器获得JSON响应:
{
"string": [
{
"id": 223,
"name": "String",
"sug": "string",
"description": "string",
"jId": 530,
"pcs": [{
"id": 24723,
"name": "String",
"sug": "string"
}]
}, {
"id": 247944,
"name": "String",
"sug": "string",
"description": "string",
"jlId": 531,
"pcs": [{
"id": 24744,
"name": "String",
"sug": "string"
}]
}
]
}
为了解析响应,列出" name" &安培; "说明",我写了这段代码:
interface MyObj {
name: string
desc: string
}
let obj: MyObj = JSON.parse(data.toString());
我的问题是如何在可以显示的列表中获取名称和描述。
答案 0 :(得分:10)
您为解析后的数据提供了错误的类型。应该是这样的:
interface MyObj {
name: string
description: string
}
let obj: { string: MyObj[] } = JSON.parse(data.toString());
所以它不是MyObj
,它是包含string
数组的属性MyObj
的对象。你可以像这样访问这些数据:
console.log(obj.string[0].name, obj.string[0].description);
您可以为其定义interface
,而不是使用匿名类型:
interface MyRootObj {
string: MyObj[];
}
let obj: MyRootObj = JSON.parse(data.toString());