Comment créer un commentaire en JSON ?

la programmation


Je crée une politique personnalisée (j’étudie pour une certification) et j’essayais de créer un commentaire dans le bloc de code JSON.

Toute aide serait appréciée. Merci!

C’est ce que j’ai tenté après avoir fait des recherches, car il y a très peu de choses concernant l’ERREUR qu’AWS a lancée concernant les commentaires.

1. Voici le bloc de code à utiliser comme exemple provenant d’AWS :
————————————————– ———–

{
   "Version": "2012-10-17",
   "Statement": [
   {
      "Effect": "Allow",
      "Action": "support:*",
      "Resource": "*"
   },
   {
       "Effect": "Deny",
       "Action": "support:ResolveCase",
       "Resource": "*"
    }]
}

2. Voici le code modifié avec les commentaires JSON (qui a généré l’ERREUR) :
————————————————– ———————-

{
    "__comment1__": "Custom policy to specify what actions to allow or deny.",
    "__comment2__": "The following policy statement allows an IAM user to perform",
    "__comment3__": "all actions in AWS Support except resolve a case.",
    "Version": "2012-10-17",
   "Statement": [
   {
      "Effect": "Allow",
      "Action": "support:*",
      "Resource": "*"
   },
   {
       "Effect": "Deny",
       "Action": "support:ResolveCase",
       "Resource": "*"
    }]
}

L’ERREUR générée par AWS est la suivante :

Ln 2, Col 20Invalid Policy Element: The policy element __comment1__ is not valid.

Ce que j’ai essayé :

J’ai essayé d’ajouter des commentaires, selon l’article de FreeCodeCamp, mais c’est à ce moment-là qu’AWS a lancé l’ERREUR.

Exemple de commentaire JSON – Comment commenter dans des fichiers JSON[^]

Solution 2

JSON est un format d’échange de données et les commentaires ne font pas partie de la syntaxe JSON. Les analyseurs JSON ne les prendront pas en compte et analyseront uniquement les données. Ainsi, les commentaires ne sont pas officiellement pris en charge, mais vous pouvez utiliser une alternative comme utiliser un format non JSON prenant en charge les commentaires, tel que YAML, puis le convertir en JSON.

Cependant, vous pouvez toujours utiliser les commentaires dans les fichiers JSON comme éléments personnalisés comme :

JSON
{
  "name": "John",
  "age": 30,
  "comments": "This is a sample comment"
}

Solution 1

Il n’existe pas de commentaire en JSON. Il s’agit d’une spécification de formatage de données, pas de code.

Que ce « commentaire » soit réellement analysable ou non dépend de l’implémentation de l’analyseur JSON utilisée pour charger les données. Si l’exemple que vous avez lié, l’analyseur JSON en Python est utilisé pour charger le fichier. Cet analyseur ne voit pas le “_comment” comme un vrai commentaire. Il est chargé comme une simple chaîne dans l’objet de données résultant.

Certains analyseurs prendront en charge ce chargement, mais gardez à l’esprit que chacun d’entre eux traitera le commentaire comme faisant partie des données. Cela ne sera PAS ignoré.

D’autres implémentations nécessitent la définition d’une classe dans laquelle désérialiser les données. Si l’analyseur n’ignore pas les données du fichier JSON pour lesquelles il ne trouve pas de champ dans la classe cible, vous pouvez obtenir des erreurs comme celles que vous rencontrez.

Solution 3

Comme mentionné par d’autres ici, cela ne fait pas partie des spécifications. Cependant, il existe une demande soulevée que vous pouvez surveiller pour voir si un support est prévu : [System.Text.Json] Ajout de la possibilité de sérialiser Commentaires sur les propriétés · Problème n° 35251 · dotnet/runtime · GitHub[^].

Solution 4

Citation:

Ln 2, Col 20 Élément de stratégie non valide : l’élément de stratégie __comment1__ n’est pas valide.

C’est une erreur générée par le service que vous appelez. Cela indique qu’ils appliquent un Schéma JSON[^]ce qui signifie que vous ne pouvez pas simplement ajouter de nouveaux éléments inconnus au document.

Vous devrez étudier le schéma fourni pour le service que vous appelez pour voir s’il propose des champs de commentaires. Si ce n’est pas le cas, vous ne pourrez pas inclure de commentaires dans votre charge utile JSON.

コメント

タイトルとURLをコピーしました