JavaScript Analyse avec une fonction de réanimation


Exemple

Une fonction de réanimation peut être utilisée pour filtrer ou transformer la valeur analysée.

5.1
var jsonString = '[{"name":"John","score":51},{"name":"Jack","score":17}]';

var data = JSON.parse(jsonString, function reviver(key, value) {
  return key === 'name' ? value.toUpperCase() : value;
});
6
const jsonString = '[{"name":"John","score":51},{"name":"Jack","score":17}]';

const data = JSON.parse(jsonString, (key, value) =>
  key === 'name' ? value.toUpperCase() : value
);

Cela produit le résultat suivant:

[
  {
    'name': 'JOHN',
    'score': 51
  },
  {
    'name': 'JACK',
    'score': 17
  }
]

Ceci est particulièrement utile lorsque des données doivent être envoyées en série / encodées lorsqu’elles sont transmises avec JSON, mais on veut y accéder en les désérialisant / décodé. Dans l'exemple suivant, une date a été encodée dans sa représentation ISO 8601. Nous utilisons la fonction reviver pour analyser ceci dans une Date JavaScript.

5.1
var jsonString = '{"date":"2016-01-04T23:00:00.000Z"}';

var data = JSON.parse(jsonString, function (key, value) {
  return (key === 'date') ? new Date(value) : value;
});
6
const jsonString = '{"date":"2016-01-04T23:00:00.000Z"}';

const data = JSON.parse(jsonString, (key, value) =>
  key === 'date' ? new Date(value) : value
);

Il est important de vous assurer que la fonction reviver renvoie une valeur utile à la fin de chaque itération. Si la fonction reviver renvoie undefined , aucune valeur ou l'exécution ne tombe à la fin de la fonction, la propriété est supprimée de l'objet. Sinon, la propriété est redéfinie pour être la valeur de retour.