Quantcast
Channel: Coding Guide .NET
Viewing all articles
Browse latest Browse all 3

Visual Studio (Code) und JSON-Kommentare

$
0
0

Visual Studio (VS) und Visual Studio Code (VS Code) erlauben Kommentare in allen JSON-Dateien. Das kann zu Problemen führen.

Es gibt viele Aussagen dazu, dass Kommentare über „//“ im JSON-Format nicht (mehr) erlaubt sind. Schaue dir hierzu z. B. die Suchergebisse zu „comments in json“ in Bing oder Google DE an. Richtig ist, dass ein Decoder (also Konsument) nicht mit Kommentaren umgehen können muss. Siehe hierzu z. B. diese Zitate:

A JSON encoder MUST NOT output comments. A JSON decoder MAY accept and ignore comments.

Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.“

Quelle: https://blog.getify.com/json-comments/

Bei der JSON-Implementierung für VS und VS Code hat man sich dafür entschieden, Kommentare generell zu erlauben. Das hat Microsoft dann einfach eine „Erweiterung der JSON-Spezifikation“ genannt (siehe https://code.visualstudio.com/Docs/languages/json#_json-comments).

  • Das heißt einerseits, dass der Editor immer Kommentare in „.json“-Dateien erlaubt. Sie werden in der für Kommentare konfigurierten Farbe darstellt und es werden keine roten „Fehler“-Kringel darunter anzeigt. VS Code verarbeitet seine eigenen Konfigurationsdateien problemlos mit Kommentaren – Es ist ja auch ganz praktisch, dass über jedem Eintrag in den Konfigurationsdateien ein erklärender Kommentar steht, oder?
  • Das heißt andererseits, dass man dazu verleitet wird, munter Kommentare in jegliche JSON-Datei zu schreiben. Diese werden aber ggf. von Tools verarbeitet, die dann nicht mehr damit klarkommen. Tools, die dann teilweise auch ohne sinnige Fehlermeldung abbrechen. Also aufgepasst – so schön Kommentare auch sein mögen. Wenn du sie unbedingt haben willst, musst du für bestimmte Konsumenten JSMin vorschalten (JSMin auf GitHub, JSMin-Homepage).

Falls du eine Alternative zu JSMin oder eine ganz andere Lösung vorschlagen möchtest, nutze bitte die Kommentar-Funktion.


Viewing all articles
Browse latest Browse all 3

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.





Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.