在Typescript中解析JSON数组

时间:2016-12-31 12:56:05

标签: json typescript ionic2

我以这种方式从远程服务器获得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());

我的问题是如何在可以显示的列表中获取名称和描述。

1 个答案:

答案 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());