web-dev-qa-db-fra.com

Analyser le tableau JSON dans Typescript

j'ai une réponse JSON du serveur distant de cette façon:

{
  "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"
      }]
    }
  ]
}

Afin d'analyser la réponse, pour lister le "nom" et la "description", j'ai écrit ce code:

interface MyObj {
  name: string
  desc: string
}
let obj: MyObj = JSON.parse(data.toString());

Ma question est de savoir comment obtenir le nom et la description dans une liste qui peut être affichée.

7
Jendorski Labs

Vous avez donné un type incorrect à vos données analysées. Devrait être quelque chose comme ça:

interface MyObj {
  name: string
  description: string
}

let obj: { string: MyObj[] } = JSON.parse(data.toString());

Ce n'est donc pas MyObj, c'est un objet avec la propriété string contenant un tableau de MyObj. Que vous pouvez accéder à ces données comme ceci:

console.log(obj.string[0].name, obj.string[0].description);

Au lieu d'utiliser un type anonyme, vous pouvez également définir interface pour cela:

interface MyRootObj {
  string: MyObj[];
}

let obj: MyRootObj = JSON.parse(data.toString());
11
Yaroslav Admin