JSON: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 56: | Zeile 56: | ||
* https://jsonpatch.com/ | * https://jsonpatch.com/ | ||
* [https://github.com/streamich/json-joy/tree/master/src/json-patch Json-Patch] als Teil der [https://github.com/streamich/json-joy Json-Joy]-Initiative. | * [https://github.com/streamich/json-joy/tree/master/src/json-patch Json-Patch] als Teil der [https://github.com/streamich/json-joy Json-Joy]-Initiative. | ||
+ | * https://github.com/josdejong/immutable-json-patch | ||
* https://github.com/benjamine/jsondiffpatch | * https://github.com/benjamine/jsondiffpatch |
Version vom 22. Juni 2023, 11:08 Uhr
Allgemeines
Siehe auch
Auswertung in der Shell
mit Hilfe von jq
Mit dem Paket jq
gibt es ein Tool zur Auswertung von JSON auf der Kommandozeile:
echo '{"error":{"code":"assertuserfailed","info":"Assertion that the user is logged in failed"}}' | jq -r '.error.code'
erzeugt
assertuserfailed
Siehe
mit Hilfe von Miller (mlr)
Siehe https://miller.readthedocs.io/en/latest/
mit Hilfe von Visidata
Visidata ist ein Datenviewer mit einer Text-Benutzeroberfläche (TUI) im Terminal.
Siehe
Schöne Ausgabe auf Kommandozeile
Um eine für den Menschen leicht lesbare Ausgabe von JSON zu haben, kann man das mit Python mitgelieferte Skript json.tool
nutzen:
echo '{"error":{"code":"assertuserfailed","info":"Assertion that the user is logged in failed"}}' | python -m json.tool
Ausgabe:
{ "error": { "code": "assertuserfailed", "info": "Assertion that the user is logged in failed" } }
Änderungen von JSON-Data
JSONPatch
JsonPatch ist ein JSON-Datenformat zur Darstellung von Änderungen an einem JSON-Datentyp. Siehe dazu auch
- https://www.npmjs.com/package/fast-json-patch
- https://github.com/sonnyp/JSON8/tree/main/packages/patch
- https://www.npmjs.com/package/rfc6902
- https://github.com/cujojs/jiff
- Javascript-Implementierung von JsonPatch
- http://jsonpatchjs.com/
- RFC6902
- https://jsonpatch.com/
- Json-Patch als Teil der Json-Joy-Initiative.
- https://github.com/josdejong/immutable-json-patch
Eine rudimentäre Implementierung gibt es auch für Postgres:
JSONWatch
Mit JsonWatch können Änderungen eines JSON-Datentyps auf einer URL regelmäßig überwacht werden. Die Änderungen werden als JSON-Änderungen ausgegeben.
Abfragen von JSON
JSONAPI
Basierend auf REST-Abfragen wurde die JSONAPI entwickelt.
GraphQL
Abweichend von REST hat Facebook einen Standard für Datenabfragen namens GraphQL entwickelt. Dafür gibt es eine Vielzahl von Adaptern, z.B.
- Hasura - ein Open Source Layer, der Abfragen in GraphQL auf eine Postgres-Datenbank übersetzt.
JSONPath
- https://restfulapi.net/json-jsonpath/
- https://www.baeldung.com/guide-to-jayway-jsonpath
- https://github.com/json-path/JsonPath
Rust und JSON
Siehe zum Parsen und Schreiben von JSON in Rust] beispielsweise
MS Access und JSON
Microsoft Access 2010 unterstützt von sich aus keinen JSON-Export.
Es gibt jedoch ein kleines Tool, um ganze Datenbanken aus MS Access nach JSON zu exportieren. Das ist aber kein dynamischer Prozess. Bei Änderung der Datenbank muss die Datenbank auch wieder im Ganzen exportiert werden.