JSON in Java mit Schema und JsonPath. Wolfgang Nast

Ähnliche Dokumente
XML in Oracle 12c. Wolfgang Nast

XML, FI und JSON strukturiert in Java verwenden. Wolfgang Nast

Semistrukturierte Daten

Einführung in die Programmierung für NF MI. Übung 04

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

APEX (Hoch) Verfügbar? Ernst Leber

Ein APEX für alle und alle für APEX! Niels de Bruijn, Fachbereichsleiter APEX , DOAG DB Konferenz

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

C# im Vergleich zu Java

Web-Techniken Einführung in JavaScript

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Virtuelle IT-Projektteams erfolgreich führen. Autor: DOAG November 2016 Justine Paß

Information über die WebServices der Parlamentsdienste

Seminar: XML und intelligente Systeme

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Python zur Lösung von AvA Übung 1 VON MORITZ FEY

ALP II Dynamische Datenmengen Datenabstraktion

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Workflows in APEX mit Camunda

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Datenaustausch mit JSON

Kapitel 12: Induktive

Informationen über die WebServices der Parlamentsdienste. Projektmanagement CH-3003 Bern

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

ADT: Verkettete Listen

Keine Angst vor Puppet 4. Secure Linux Administration Conference 2015 Martin Alfke

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Algorithmen und Datenstrukturen

Computeranwendung und Programmierung (CuP)

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

Objektorientierte Programmierung und Modellierung

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Windows PowerShell. CmdLets. PipeLine / Filter. Variablen / Operatoren. Schleifen / Prüfmethoden. Funktionen / Skripte. Allgegenwärtige Parameter

1 Klassen anlegen und Objekte erzeugen

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

1 Klassen anlegen und Objekte erzeugen

Tag 8 Repetitorium Informatik (Java)

Medien und Webtechnologie

Informatik II Übung 5

Wie entwerfe ich ein Programm?

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Boost your APEX Deployment and Provisioning with Docker

Programmierkurs Java

Vorlesung Programmieren

Programmieren in Haskell Programmiermethodik

Oracle native json Support. Erste Schritte

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

CLICK TO EDIT MASTER TITLE STYLE

Funktionen nur wenn dann

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Vorkurs Informatik WiSe 16/17

Unified-E Standard WebHttp Adapter

Programmiervorkurs Einführung in Java Tag 1

Wenn. Schnittstellen. alt werden... Claus Straube IT Architekt

Programmieren I. Kapitel 5. Kontrollfluss

JavaScript und Offline-first Kai Donato MT AG

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Datenstrukturen / Container in Java

Funktionen nur wenn dann

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Visual Basic Express PST_Farbe_von_Layer

Agenda. 1 Einleitung. 2 Binäre Bäume. 3 Binäre Suchbäume. 4 Rose Trees. 5 Zusammenfassung & Ausblick. Haskell Bäume. Einleitung.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Einstieg in die Informatik mit Java

Institut für Informatik

Einführung in die Programmierung für NF. Arrays

Einstieg in die Informatik mit Java

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Wiederholung aus SWE2

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus:

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)

Collections. Arthur Zaczek. Nov 2015

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

2017/12/27 04:39 1/24 Articles. Diese Seite enthält noch nicht alle Informationen bzw. befindet sich aktuell in der Überarbeitung

Advanced Programming in C

PostScript -Sprache. Frank Richter

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Informatik II Übung 2

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Wiener Linien Realtime Schnittstellendokumentation

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Das Einsteigerseminar Objektorientierte Programmierung in Java

1 - FortProg ist: [ ] objekt-orientiert; [ ] funktional; [ ] logisch; [ ] manchmal nicht auszuhalten

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Java Generics & Collections

Einstieg in die Informatik mit Java

1 RPC-Protokoll-Definitionssprache (Protocol Definition Language )

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Transkript:

JSON in Java mit Schema und JsonPath Wolfgang Nast

Agenda JSON Schema Java und JSON Schema JSON Path Mapping Zusammenfassung 2 JSON in Java mit Schema und JsonPath

Im Überblick Technologie-orientiert Branchen-unabhängig Hauptsitz Ratingen 240 Beschäftigte Ausbildungsbetrieb Inhabergeführte Aktiengesellschaft Gründungsjahr 1994 Niederlassung Frankfurt am Main Zertifizierter Partner von Oracle, Microsoft und SAP 3 JSON in Java mit Schema und JsonPath

JSON Schema JSON Schema Implementierung in Java JSON Schema JSON lesen und validieren 4 JSON in Java mit Schema und JsonPath

JSON Schema JSON Schema Versionen JSON Schema Beispiel 5 JSON in Java mit Schema und JsonPath

JSON Schema Vorgaben von Java JSON Schema lesen: - Java Implementierungen - Draft 4 - Draft 6 6 JSON in Java mit Schema und JsonPath

JSON Schema Beschreibung JSON JSON definiert die Strukturen: - Objekte - Arrays - Werte String Number Boolean Null 7 JSON in Java mit Schema und JsonPath

JSON Schema Beschreibung JSON Schema Strukturen JSON Schema definiert die Strukturen und Formate: - Number Integer - String Enum Date-Time, Date, Time Email 8 JSON in Java mit Schema und JsonPath

Beispiel: JSON Schema JSON Schema Buch Teile des Schemas: - Allgemeiner Teil - Kapitel - Autor - Buch 9 JSON in Java mit Schema und JsonPath

Allgemeiner Teil Header JSON Schema Header { "$schema": "http://json-schema.org/draft-06/schema#", "title": "Buch", "description": "Ein Buch mit Autor und Kapiteln", "type" : "object", "properties" : { "buch" : {"$ref" : "#/definitions/buch" } }, 10 JSON in Java mit Schema und JsonPath

Allgemeiner Teil Definitionen JSON Schema Definitionen Id "definitions" : { "id" : { "id" : "integer", "minimum" : 1 }, 11 JSON in Java mit Schema und JsonPath

Kapitel Teil 1 JSON Schema "kapitel" : { "type": "object", "properties": { "id": { "$ref": "#/definitions/id" }, "name": { "type" : "string" }, 12 JSON in Java mit Schema und JsonPath

Kapitel Teil 2 JSON Schema "text": { "type" : "string" } }, "required": ["id", "name"], "additionalproperties": false }, 13 JSON in Java mit Schema und JsonPath

Autor Teil 1 JSON Schema "autor" : { "type" : "object", "properties" : { "id" : {"$ref" : "#/definitions/id"}, "name" : { "type" : "string" }, "geburtstag" : { "type" : "string", "format" : "date" }, 14 JSON in Java mit Schema und JsonPath

Autor Teil 2 JSON Schema "geschlecht" : { "enum" : ["frau", "mann"] } }, "required": ["id", "name", "geschlecht"], "additionalproperties": false }, 15 JSON in Java mit Schema und JsonPath

Buch Teil 1 JSON Schema "buch" : { "type" : "object", "properties" : { "id": { "$ref": "#/definitions/id" }, "name" : { "type" : "string" }, 16 JSON in Java mit Schema und JsonPath

Buch Teil 2 JSON Schema "kalitel" : { "type" : "array", "items": { "$ref": "#/definitions/kapitel" }, "minitems": 1, "uniqueitems": true } }, 17 JSON in Java mit Schema und JsonPath

Buch Teil 3 JSON Schema } } } "required": ["id", "name"], "additionalproperties": false 18 JSON in Java mit Schema und JsonPath

Java und JSON Schema Implementierungen auf GitHub everit-org / json-schema java-json-tools / json-schema-validator networknt / json-schema-validator 19 JSON in Java mit Schema und JsonPath

JSON Schema und everit-org Schema Validierung everit-org - Draft 4 und Draft 6 - json.org - Format(date-time, email, ) 20 JSON in Java mit Schema und JsonPath

JSON Schema und java-json-tools Schema Validierung java-json-tools - Draft 4 - Jackson Node - Kein Format 21 JSON in Java mit Schema und JsonPath

JSON Schema und networknt Schema Validierung networknt - Draft 4 - Jackson Node - Kein Format - Schnelle Validierung 22 JSON in Java mit Schema und JsonPath

JSON Path Operatoren Funktionen Filter Operatoren 23 JSON in Java mit Schema und JsonPath

JSON Path Operatoren Teil 1 Operator Beschreibung $ Root Element (immer anzugeben) @ Aktueller Node * Wildcard (Name oder Nummer).. Deep Scan.<Name> Unterelement mit Name ['<Name1>'(, '<Name2>')] Unterelemente mit mehreren Namen 24 JSON in Java mit Schema und JsonPath

JSON Path Operatoren Teil 2 Operator [<Nummer1>(,<Nummer2>)] [<von>:<bis>] [?(<Filter>)] Beschreibung Index im Array (auch mehrere) Index Block im Array(von-bis) Filteranweisung 25 JSON in Java mit Schema und JsonPath

JSON Path Funktionen Funktionen für Array Variablen Funktionen min() max() avg() stddev() length() Beschreibung Minimaler Wert im Array Maximaler Wert im Array Mitterwert von der Werten des Arrays Standarabweichung der Werte Länge des Arrays 26 JSON in Java mit Schema und JsonPath

JSON Path Filter Operatoren Teil 1 Operatoren für den Filter (?) Funktionen Beschreibung == Links und Rechts sind gleich!= Links und Rechts unterscheiden sich < Links ist kleiner als Rechts <= Links ist kleinergleich zu Rechts > Links ist größer als Rechts >= Links ist größergleich zu Rechts =~ Links entspricht den Regulären Ausdruck 27 JSON in Java mit Schema und JsonPath

JSON Path Filter Operatoren Teil 2 Operatoren für den Filter (?) Funktionen in nin subsetof size empty Beschreibung Links ist Teil der Liste Links ist nicht Teil der Liste Links ist Teilliste der Liste Links ist Array der Länge oder String der Länge Links ist leeres Array oder ein Leerstring 28 JSON in Java mit Schema und JsonPath

JSON Path Beispiele JSON Path $.kapitel[0].name $['kapitel'][0]['name'] $.kapitel[*].id $..name $.kapitel[?(@.name in 'Anfang', 'Ende')] Beschreibung Der Name des ersten Kapitels Der Name des ersten Kapitels Ausführliche Schreibweise mit [] Alle Ids der Kapitel Alle Name Teile(Buch, Kapitel, Autor) Alle Kapitel mit Namen Anfang oder Ende $..* Alle Elemente im Baum einzeln. 29 JSON in Java mit Schema und JsonPath

Wolfgang Nast Telefon: +49 2102 30961 0 wolfgang.nast@mt-ag.com