6 votes

Obtenir un élément d'un tableau json javascript

J'ai une simple chaîne Json

[
   {
      "assetName":"LCT",
      "assetValue":"",
      "typeValueInput":"select",
      "valueInputSelect":null,
      "required":true,
      "valueInput":"{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
   }
]

Je veux obtenir le nom du champ dans les données de ValueInput par Javascript.

Aidez-moi, s'il vous plaît !

5voto

Ankit Agarwal Points 23887

Vous devez parcourir le tableau en boucle, puis analyser le JSON filtré afin de pouvoir accéder à l'objet data réseau. Ensuite, il suffit de boucler cette data pour obtenir la valeur de chaque name propriété.

var arr = [{
  "assetName": "LCT",
  "assetValue": "",
  "typeValueInput": "select",
  "valueInputSelect": null,
  "required": true,
  "valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}];

arr.forEach((arrObj) => {
  var jsonData = JSON.parse(arrObj.valueInput);
  jsonData.data.forEach(({name}) => console.log(name));
});

1voto

Loc Mai Points 41

Vous pourriez utiliser JSON.parse

var jsonArray = [
  {
    assetName: 'LCT',
    assetValue: '',
    typeValueInput: 'select',
    valueInputSelect: null,
    required: true,
    valueInput:
      '{"data":[{"name":"name1","id":"12"},{"name":"name2","id":"13"},{"name":"name3","id":"14"}]}'
  }
];

let name = jsonArray[0].valueInput;
name = JSON.parse(name);
name.data.forEach(value => {
  console.log(value.name, value.id);
});

1voto

Jack Bashford Points 34617

Utilice JSON.parse et utiliser map :

const data = [{
  "assetName": "LCT",
  "assetValue": "",
  "typeValueInput": "select",
  "valueInputSelect": null,
  "required": true,
  "valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}]
const names = JSON.parse(data[0].valueInput).data.map(({ name }) => name);
console.log(names);

0voto

R3tep Points 1846

Vous pouvez utiliser JSON.parse

JSON.parse(o[0].valueInput).data[0].name

var o = [
   {
      "assetName":"LCT",
      "assetValue":"",
      "typeValueInput":"select",
      "valueInputSelect":null,
      "required":true,
      "valueInput":"{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
   }
]

console.log(JSON.parse(o[0].valueInput).data[0].name);

// To get all, use a loop

var arrO = JSON.parse(o[0].valueInput).data;

arrO.forEach((obj) => console.log(obj.name))

0voto

Yosvel Quintero Points 10172

Vous pouvez le faire :

const arr = [{"assetName": "LCT","assetValue": "","typeValueInput": "select","valueInputSelect": null,"required": true,"valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"}];

arr.forEach(o => JSON.parse(o.valueInput).data.forEach(({id, name}) => console.log(id, name)));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X