0
votes

Comment accéder au tableau dans un objet JSON dans réagir JS

J'essaie d'accéder à un tableau à l'intérieur de l'objet JSON. Ceci est mon fichier JSON.

    const {
        items = [],
        attachmentList = items.slice(0, 1).map(item => item.attachments),
        attachmentName = attachmentList.slice(0, 1).map(item => item.name),
        createTime = items.slice(0, 1).map(item => item.createTime),
    } = data;


2 commentaires

Est-ce que tu veux? Stackoverflow.com/a/58553030/6544460


@Vahidakhtar Je veux un moyen d'accéder aux données. Parce que j'accède à la pièce jointe comme la même manière que j'accède aux articles Array ..


3 Réponses :


0
votes

items.slice (0, 1) code> retournera un nouveau tableau. Ainsi, lorsque vous utilisez la carte, Code> Pièce jointeList CODE> retournera un tableau dans une matrice comme ceci: xxx pré>

Tout d'abord, vous pouvez refacteur comme ceci: p>

const {
        items = [],
        attachmentList = items.slice(0, 1).map(item => item.attachments),
        attachmentName = attachmentList[0].slice(0, 1).map(item => item.name),
        // Access to the first item of attachmentList
        createTime = items.slice(0, 1).map(item => item.createTime),
    } = data;


0 commentaires

1
votes

Le problème est dû au fait que vos pièces jointes sont des matrices et de faire

pièce jointeList.slice (0, 1) .map (item => item.name), code> p>

est L'échec en tant que pièce jointe Contient une matrice de tableaux et d'élément est un tableau. P>

Essayez d'utiliser Appartement , il aplatira la matrice de matrice (pièces jointes) au tableau des pièces jointes. P>

Checkout L'extrait P>

P>

var data = {
  "items": [{
    "createTime": "2019-10-25T04:33:50.238Z",
    "attachments": [{
        "name": "xxx.pdf",
        "legal": false,
        "id": "1908925450",
        "abc": true,
        "def": true
      },
      {
        "name": "xxx_original.xml",
        "legal": true,
        "id": "1908925449",
        "abc": false,
        "def": false
      }
    ]
  }]
}


const {
  items = [],
    attachmentList = items.slice(0, 1).map(item => item.attachments).flat(),
    attachmentName = attachmentList.slice(0, 1).map(item => item.name),
    createTime = items.slice(0, 1).map(item => item.createTime),
} = data;

console.log(attachmentName)


0 commentaires

0
votes

C'est parce que votre attchmmentlist est une matrice de tableaux maintenant, vous pouvez le faire pour obtenir le nom xxx

espère qu'il aide


0 commentaires