> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/de/fur-devops-und-administratoren/automate/json-output.md).

# Ergebnisse als JSON lesen

Devolutions CLI-Ergebnisse als JSON oder YAML erhalten, in einem Umschlag für jeden Befehl, damit Skripte Erfolg und Fehler zuverlässig prüfen können.

Die standardmäßige Textausgabe ist für Menschen geschrieben: Ihr Aufbau unterscheidet sich von Befehl zu Befehl und kann sich ändern. Für ein Skript fordern Sie JSON oder YAML an. Jeder Befehl antwortet dann mit demselben Umschlag, bei Erfolgen und bei Fehlern, sodass Ihr Skript ein Feld prüft, um zu wissen, was geschehen ist.

## Das Ausgabeformat wählen

<table><thead><tr><th width="250">OPTION</th><th>WAS SIE BEKOMMEN</th></tr></thead><tbody><tr><td><code>--output text</code> (Standard)</td><td>Lesbarer Text, für jeden Befehl anders. Werten Sie ihn nicht aus.</td></tr><tr><td><code>--output json</code> or <code>--json</code></td><td>Der JSON-Umschlag, eingerückt.</td></tr><tr><td><code>--output yaml</code> or <code>--yaml</code></td><td>Derselbe Umschlag, in YAML.</td></tr></tbody></table>

Diese Optionen funktionieren mit jedem Befehl. Verwenden Sie nur eine davon pro Befehl: `--json` mit `--yaml` oder `--json` mit `--output yaml` stoppt den Befehl mit dem Fehler `conflictingOptions`. `--json` mit `--output json` wird akzeptiert.

```bash
devo vault list --json
```

## Der Umschlag

```json
{
  "status": "success",
  "command": "vault.list",
  "operationId": null,
  "data": [ ],
  "warnings": [],
  "errors": []
}
```

<table><thead><tr><th width="180">FELD</th><th>WAS ES ENTHÄLT</th></tr></thead><tbody><tr><td><code>status</code></td><td><code>success</code>, <code>partial</code> oder <code>error</code>. Prüfen Sie dieses Feld zuerst. <code>partial</code> bedeutet, dass der Befehl abgeschlossen wurde, aber einige Elemente fehlgeschlagen sind: <code>data</code> enthält, was gelungen ist, <code>errors</code> listet auf, was nicht, und der Exitcode ist <code>0</code>.</td></tr><tr><td><code>command</code></td><td>Der Befehl, der ausgeführt wurde, als Pfad in Punktnotation wie <code>vault.list</code> oder <code>entry.references</code>. Aliase und Optionswerte ändern ihn nicht.</td></tr><tr><td><code>operationId</code></td><td>Ein Bezeichner, wenn der Befehl einen erzeugt hat, sonst <code>null</code>.</td></tr><tr><td><code>data</code></td><td>Das Ergebnis. Seine Form hängt vom Befehl ab.</td></tr><tr><td><code>warnings</code></td><td>Hinweise, die den Befehl nicht angehalten haben.</td></tr><tr><td><code>errors</code></td><td>Ein Element pro Fehler. Leer, wenn <code>status</code> <code>success</code> ist; nicht leer, wenn es <code>partial</code> oder <code>error</code> ist.</td></tr></tbody></table>

Jedes Element in `errors` hat diese Felder:

<table><thead><tr><th width="180">FELD</th><th>WAS ES ENTHÄLT</th></tr></thead><tbody><tr><td><code>code</code></td><td>Ein stabiler Fehlercode, etwa <code>missingParameter</code> oder <code>conflictingOptions</code>. Stützen Sie die Entscheidungen Ihres Skripts auf dieses Feld.</td></tr><tr><td><code>message</code></td><td>Eine Erklärung für Menschen. Ihr Wortlaut kann sich ändern, gleichen Sie ihn daher nicht ab.</td></tr><tr><td><code>target</code></td><td>Die Option, das Argument oder die Ressource, um die es im Fehler geht, falls bekannt.</td></tr><tr><td><code>blockerStatus</code>, <code>stageStatuses</code></td><td>Einzelheiten der Workspace-Laufzeit, wenn der Fehler von ihr kommt.</td></tr></tbody></table>

Eine Befehlszeile, die Devolutions CLI nicht analysieren kann, etwa ein falsch geschriebener Befehl, gibt ebenfalls den Umschlag zurück, mit Fehlern mit dem Code `usageError` und manchmal einem `usageSuggestion`-Element, das die richtige Schreibweise vorschlägt.

## Es in einem Skript verwenden

Prüfen Sie zuerst den Exitcode und lesen Sie dann den Umschlag. Ein `partial`-Ergebnis endet mit `0`, melden Sie also auch `errors`, wenn der Exitcode `0` ist. Zum Beispiel mit `jq`:

{% tabs %}
{% tab title="Bash" %}

```bash
if result=$(devo vault list --json); then
  echo "$result" | jq -r '.data[].name'
  # A partial result exits with 0 and still lists errors.
  echo "$result" | jq -r '.errors[] | "\(.code): \(.message)"' >&2
else
  echo "$result" | jq -r '.errors[] | "\(.code): \(.message)"' >&2
  exit 1
fi
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$result = devo vault list --json | ConvertFrom-Json
# 'partial' and 'error' both list their errors.
$result.errors | ForEach-Object { Write-Warning "$($_.code): $($_.message)" }
if ($result.status -eq 'error') {
    exit 1
}
# 'success' or 'partial': data holds what succeeded.
$result.data | ForEach-Object { $_.name }
```

{% endtab %}
{% endtabs %}

Die Exitcodes sind in [Exitcodes und Fehler](/cli/de/referenz/exit-codes-and-errors.md) aufgelistet.

## Standardausgabe und Standardfehlerausgabe

<table><thead><tr><th width="200">STREAM</th><th>WAS DORTHIN GEHT</th></tr></thead><tbody><tr><td><strong>Standardausgabe</strong></td><td>Der Umschlag, in JSON oder YAML, für Erfolge und Fehler. In Text das Ergebnis. In Text gehen Fehler von <code>devo login</code> und von Befehlen, die nur auf Devolutions Cloud oder nur auf Devolutions Server verfügbar sind, ebenfalls hierher, als <code>&#x3C;code>: &#x3C;message></code>.</td></tr><tr><td><strong>Standardfehlerausgabe</strong></td><td>Als Text die meisten Fehler, als <code>&#x3C;code>: &#x3C;message></code>. Hinweise darauf, was Devolutions CLI tut, etwa <code>Starting Devolutions CLI daemon...</code>, sowie die Eingabeaufforderungen und Meldungen der interaktiven Anmeldung.</td></tr></tbody></table>

Lesen Sie also bei JSON oder YAML nur die Standardausgabe: Sie enthält genau einen Umschlag. Die Ausnahme ist `devo secret run`, weiter unten beschrieben.

## Still oder ausführlich

Hinweise darauf, was Devolutions CLI tut, etwa das Starten des Hintergrundprozesses, werden auf die Standardfehlerausgabe geschrieben:

* In der Textausgabe erscheinen sie standardmäßig. `--quiet` blendet sie aus.
* In der JSON- oder YAML-Ausgabe sind sie standardmäßig ausgeblendet. `--verbose` zeigt sie, weiterhin auf der Standardfehlerausgabe.

`--quiet` und `--verbose` zusammen stoppen den Befehl mit `conflictingOptions`.

## Gut zu wissen

* `devo secret run` umhüllt nicht die Ausgabe des Programms, das es startet: Die Ausgabe des Programms geht so an Ihr Terminal, wie das Programm sie schreibt, mit maskierten geheimen Werten. Wie die eigenen Fehler zurückkommen, hängt davon ab, wann sie auftreten:
  * Ein Start, den Devolutions CLI ablehnt, bevor etwas aufgelöst wird, etwa eine Referenz in den Argumenten des Befehls (`secretLaunchArgumentReference`), ein fehlgeschlagenes `--check` oder ein Programm, das nicht starten kann, gibt den Umschlag auf der Standardausgabe mit `--json` oder `--yaml` zurück.
  * Eine Referenz, die sich nicht auflöst, wird immer als `<code>: <message>` auf die Standardfehlerausgabe geschrieben, auch mit `--json`, und das Programm startet nicht.
  * Ein von `--timeout-seconds` gestopptes Programm endet mit `124`; ein unterbrochener Lauf endet mit `130`.
  * Andernfalls gibt `devo secret run` den eigenen Exitcode des Programms zurück. Siehe [Exitcodes und Fehler](/cli/de/referenz/exit-codes-and-errors.md).
* Jeder Befehl und seine Optionen stehen in [Befehle](/cli/de/referenz/commands.md).

## Weiter

* [Run without prompts](/cli/de/fur-devops-und-administratoren/automate/non-interactive.md)
* [Exit codes and errors](/cli/de/referenz/exit-codes-and-errors.md)
* [Global options](/cli/de/referenz/global-options.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/de/fur-devops-und-administratoren/automate/json-output.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
