11521 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

Je m'essaye à la lecture de fichier json, ce qui a l'air simple en soit, pourtant j'ai vraiment du mal à créer quelque chose de concret. Par exemple je veux afficher une donnée selon une date (jour et mois), mais je ne peux pas récupérer mon info avec ce code :
const json = `{
  "0509": "Pierre",
  "0609": "Paul",
  "0709": "Jacques",
  "0809": "Patrice"
}`

const obj = (() => {
  const data = JSON.parse(json)
  const date = moment().format('DDMM')
  console.log(date)
  const el = document.querySelector('.see')
  el.innerHTML = data.date
})()

Le codePen

J'ai l'impression que les nombres ne sont pas possibles comme clef, en effet, si j'ajoute une lettre pour transformer la clef en chaîne de caractères plus de problème :
const json = `{
  ...
  "L0709": "Jacques",
  ...
}`
...
el.innerHTML = data.L0709
...


Pourtant je n'ai rien vu de tel dans la doc...

JSON.parse(), MDN
Manipuler des données JSON, MDN

Et puis je n'arrive pas à faire ça non plus :
el.innerHTML = data."L" + date


EDIT : Pour être sûr de transformer en string j'ai aussi tenté ceci :
date = date.toString()


Si quelqu'un veut bien éclairer ma lanterne...
Modifié par Olivier C (06 Sep 2020 - 23:06)
Oh magnifique ! Je n'y avais pas pensé :
el.innerHTML = data[date]

Et tout est ok. Au final :
const json = `{
  "0509": "Pierre",
  "0609": "Paul",
  "0709": "Jacques",
  "0809": "Patrice"
}`

const obj = (() => {
  const data = JSON.parse(json),
        date = moment().format('DDMM'),
        el = document.querySelector('.see')
  el.innerHTML = data[date]
})()


Merci à toi.
Modifié par Olivier C (07 Sep 2020 - 11:16)