# &kde-frameworks;: KService

`desktoptojson`

8

`desktoptojson`

Wandelt eine `.desktop`-Datei in eine `.json`-Datei um.

## Übersicht

    desktoptojson --input DESKTOP-FILE --output JSON-FILE

    desktoptojson  --version --help

## Beschreibung

Das KService-Framework benutzt Informationen aus `.desktop`-Dateien, um Dienste einschließlich der Module für Programme und Bibliotheken auf der Basis von Qt5 zu finden. Das Modulsystem von Qt5 verwendet jedoch im Modul selbst eingebettete &JSON;-Daten. Mit dem Dienstprogramm `desktoptojson` können die Informationen aus einer `.desktop`-Datei auch als eingebettete Daten für ein Qt5-Modul benutzt werden, indem die Einträge in der `.desktop`-Datei in &JSON;-Daten umgewandelt werden.

Die generierten &JSON;-Daten bestehen aus einem &JSON;-Objekt, in dem die Einträge aus der Gruppe `[Desktop Entry]` der `.desktop`-Datei abgebildet werden. Alle anderen Gruppen werden ignoriert. Die meisten Einträge werden einfach in &JSON;-Zeichenfolgen umgewandelt, aber bestimmte Einträge wie `Hidden` und `X-KDE-PluginInfo-EnabledByDefault` bestehen aus Booleschen Werten und werden auch so umgewandelt. Auf die gleiche Art werden einige Einträge wie `X-KDE-ServiceTypes` und `X-KDE-PluginInfo-Depends` immer in Feldern von Zeichenfolgen umgewandelt.

## Optionen

`--input `DESKTOP-FILE``

- Die umzuwandelnde `.desktop`-Datei.

`--output `JSON-FILE``

- Die Datei, in die die generierten &JSON;-Daten geschrieben werden.

`--help`

- Zeigt einen kurzen Hilfetext.

`--version`

- Zeigt Versionsinformation an.

## Anwendung

Die meisten Benutzer dieses Dienstprogramms verwenden das &cmake;-Makro `kservice_desktop_to_json` als Teil des Prozesses zur Erstellung eines Moduls.

    add_library(myplugin MODULE ${myplugin_SRCS})
    kservice_desktop_to_json(myplugin myplugin.desktop)

Dies erzeugt die &JSON;-Datei `myplugin.json`, auf die mit den Makros `K_PLUGIN_FACTORY_WITH_JSON` oder `Q_PLUGIN_METADATA` zugegriffen werden kann.

## Fehler

Bitte berichten Sie Fehler im Fehlerverfolgungssystem von KDE.