Json Objekt sinnvoll plätten?

berndoa

Top Contributor
Hallo,
ich habe ei kleines Problem, das vermutlich auf eine Designfrage rausläuft.

Ich habe Json Objekte wie Dieses hier:

JSON:
{
  "aktuelleVeroeffentlichungsdatum": "2023-12-15",
  "laufzeitBis": "2024-01-12",
  "alternativBerufe": [
    "Fachverk\u00e4ufer/in - Lebensmittelhandwerk (B\u00e4ckerei)",
    "Verk\u00e4ufer/in - Nahrungsmittelhandwerk"
  ],
  "angebotsart": "1",
  "arbeitgeber": "Younivers GmbH",
  "branchengruppe": "Arbeitnehmer\u00fcberlassung, Zeitarbeit",
  "branche": "Befristete \u00dcberlassung von Arbeitskr\u00e4ften",
  "arbeitgeberHashId": "ukbrhbYmMO0VQjrRhLVvyDT8rmARMfapinLqVDz4GYo=",
  "kundennummerHash": "LJVwxYn7GwKpGiwxhU-PY-dvkm0dT9e9ehK5VCLLHds=",
  "hashId": "vAIJqo4IeXbvEhwWxYPphNixPtG3H8iI3U3YMzlBwu0=",
  "arbeitsorte": [
    {
      "land": "Deutschland",
      "region": "Bayern",
      "plz": "80335",
      "ort": "M\u00fcnchen",
      "koordinaten": {
        "lat": 48.1450237,
        "lon": 11.5540845
      }
    }
  ],
  "arbeitszeitmodelle": [
    "VOLLZEIT"
  ],
  "befristung": "3",
  "uebernahme": false,
  "betriebsgroesse": "3",
  "eintrittsdatum": "2024-01-02",
  "ersteVeroeffentlichungsdatum": "2023-12-15",
  "allianzpartner": "arbeitsagentur.de",
  "allianzpartnerUrl": "www.younivers-gmbh.de",
  "titel": "Verk\u00e4ufer m/w/d B\u00e4ckerei",
  "beruf": "Verk\u00e4ufer/in",
  "modifikationsTimestamp": "2023-12-15T18:05:03.555",
  "stellenbeschreibung": "F\u00fcr unseren Kunden, ein Unternehmen aus dem Bereich der Bio-Lebensmittel, suchen wir in M\u00fcnchen zum n\u00e4chstm\u00f6glichen Zeitpunkt einen Verk\u00e4ufer f\u00fcr den Bereich B\u00e4ckerei m/w/d.\nAls Mitarbeiter profitierst du von einer vielseitigen T\u00e4tigkeit, arbeiten in einem motivierten Team sowie individuellen Weiterentwicklungsm\u00f6glichkeiten in einem wachsenden Unternehmen.\n\nDeine Aufgaben:\n\n   - Kundenbedienung und Beratung\n   - Verkauf der Backwaren\n   - Warenbestellung\n   - Wareneingangskontrolle\n   - Einhaltung Warenpr\u00e4sentation und der HACCP-Richtlinien\n\n\nDein Profil:\n\n   - Erste Erfahrung als Verk\u00e4ufer\n   - Kunden- und serviceorientierte Arbeitsweise\n   - Freude am Umgang mit Menschen\n\n   - Teamf\u00e4higkeit\n\n\nUnsere Benefits f\u00fcr dich:\n\n   - Einen unbefristeten Arbeitsvertrag mit einer \u00dcbernahmeoption durch unseren Kunden\n   - Pers\u00f6nliche und wertsch\u00e4tzende Betreuung durch unser HR-Team\n   - Interessante Aufgaben in einem zukunftsorientierten Umfeld \n   - Zusammenarbeit auf Augenh\u00f6he und offene Kommunikation \n   - Weiterentwicklungs-sowie F\u00f6rderm\u00f6glichkeiten in einem wachsenden Unternehmen\nHaben wir dein Interesse geweckt? Dann freuen wir uns auf deine Bewerbung \u00fcber unser Bewerbungsformular. Klicke einfach auf dem Button \"JETZT BEWERBEN\".\n\n  Du kennst jemanden der auf die Stellenausschreibung passt? Dann hole dir jetzt unseren Weiterempfehlungsbonus! Erkundige dich gleich telefonisch bei uns.\n  \n  Wir freuen uns auf deine Bewerbung!\n\n",
  "refnr": "14638-11830854-S",
  "fuerFluechtlingeGeeignet": false,
  "nurFuerSchwerbehinderte": false,
  "anzahlOffeneStellen": 1,
  "arbeitgeberAdresse": {
    "land": "Deutschland",
    "region": "Bayern",
    "plz": "80687",
    "ort": "M\u00fcnchen",
    "strasse": "Elsenheimerstr. 61"
  },
  "mobilitaet": {
    "fahrzeugErforderlich": false
  },
  "fuehrungskompetenzen": {
    "hatVollmacht": false,
    "hatBudgetverantwortung": false,
    "fuehrungsverantwortung": "1"
  },
  "arbeitgeberdarstellungUrl": "http://WWW.YOUNIVERS.ORG",
  "hauptDkz": "6627",
  "alternativDkzs": [
    "50919",
    "35121"
  ],
  "istBetreut": false,
  "istPrivateArbeitsvermittlung": false,
  "istZeitarbeit": true,
  "istGoogleJobsRelevant": false,
  "anzeigeAnonym": false
}

Nun ist das ineinander geschachtelte blöd weil ich mir die key value Paare in eine ods Datei (wie excel im Prinzip) packen will.
Die Keys sind die Spaltenbeschriftung und in jeder Zeile werden eben die "Eigenschaften" des Objekts (die Values) reingepackt in die entsprechende Spalte.

Eben so wie oben , nur als Tabelle, auf gut Deutsch.

Jetzt habe ich mehrere solcher json Objekte, die in die selbe Tabelle sollen.
Zwangsläufig besitzt nicht jedes Objekt die selben keys oder sie sind nicht genauso so verschachtelt wie oben.

Nun habe ich mir eine flatten function gebaut, an der ich shcon wig rummache um was sinnvolles zu fabrizieren:

Python:
def flatten_dict(d, parent_key='', sep='_', index=1):
    items = []
    for k, v in d.items():
        new_key = f"{parent_key}{sep}{k}" if parent_key else f"{k}"

        if isinstance(v, dict):
            items.extend(flatten_dict(v, new_key, sep=sep).items())
        elif isinstance(v, list):
            for i, item in enumerate(v, start=index):
                if isinstance(item, dict):
                    items.extend(flatten_dict(item, f"{new_key}_{i}", sep=sep).items())
                else:
                    items.append((f"{new_key}_{i}", item))
        else:
            items.append((new_key, v))
    return dict(items)

Aber so recht glücklich werde ich damit nicht, gerade durch die vorkommenden Listen im urspünglichen Objekt.
Wenn ich ind er final tabelle letztlich die Spalten nach den zurückgelegten Pfaden benenne (also erst über den key "Arbeitsort", dann das erste Listenobjekt, dann den key "strasse", ergäbe sowas wie arbeitsort_1_strasse als Spaltenname), dann habe ich das Problem dass ander json Objekte das vielleicht anders strukturiert haben und daher der spaltenname nicht übereinstimmt.

Aber ganz ohne den pfad zu vermerken gehts auch nicht, weil schließlich kommtsowohl beim arbeitsort als auch beim arbeitgeber "land", etc. vor,
also wären die spalten nicht eindeutig oder es würde versehentlich sachen für das arbeitsort_land beim arbeitgeber_lan eingetragen oder so.

Ist vermutlich mehr eine Desinfrage aber was würdet ihr mir raten wie ich das innvoll löse? :-/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
M Großes Json Objekt benutzen XML & JSON 5
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
W com.android.volley.ParseError: org.json.JSONException: End of input at character 0 of XML & JSON 6
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
mananana Frage zu JSON XML & JSON 3
wofus JSON filtern nach bestimmten Wert XML & JSON 7
N JSON export String Unicode? XML & JSON 6
L Json reader XML & JSON 15
megusta JSON umschreiben (converter)? XML & JSON 4
P verschachteltes json verändern XML & JSON 3
Avalon JSON flatten und wieder in DTO konvertieren XML & JSON 21
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
Trèfle Formatierung v. JSON File XML & JSON 7
M json page 2 auslesen XML & JSON 1
K JSON mit GSON nutzen XML & JSON 4
S Java REST Client + Json XML & JSON 8
W Search Value in Json XML & JSON 6
K JSON-Bibliothek XML & JSON 5
M Json auslesen XML & JSON 7
M Xml oder Json? XML & JSON 15
J JSON zu Java mit der GSON Google API XML & JSON 0
G Jackson JSON: Dynamische Serialisierung XML & JSON 6
W Json von URL Lesen (mit Gson Library) XML & JSON 3
W Json von URL Lesen XML & JSON 2
L Jackson JSON: Probleme beim einlesen XML & JSON 1
J JSon-Converter gesucht XML & JSON 2
J JSon <-> XML zwecks Validierung XML & JSON 4
M [JSON] Wie Splitten? XML & JSON 14
G Mit JSON Java und C# verbinden XML & JSON 4
I ID von Referenz speichern, nicht ganzes Objekt XML & JSON 1
B Wie kann man das ecncoding in einem vorhandenen Document-Objekt ändern? XML & JSON 2
Q XML-File als Objekt in Java XML & JSON 6
N XStream ConversionException beim Deserialisieren in (Hibernate)Objekt XML & JSON 6
Spin XML - Objekt hinzufügen XML & JSON 3
L Objekt Serialisierung: Schreiben aller Attribute erzwingen XML & JSON 5
F Objekt-Generator aus XML und XSD XML & JSON 9
M Objekt mit DOM serialisieren XML & JSON 6
F Marshaling eines JAXB Objektes worin ein anderes JAXB Objekt eingeschlossen ist XML & JSON 6
G PDF (iText) mit Objekt weiterarbeiten XML & JSON 10
M XML-Datum als Referenz auf Objekt-Variable auslesen XML & JSON 5
M Xlink in Java-Objekt umwandeln XML & JSON 9
J File objekt in xml speichern? XML & JSON 12
M XML Encoder Objekt speichern, obwohl BufferedImage im Objekt XML & JSON 3
J XML/SQLite sinnvoll? XML & JSON 5
G xml sinnvoll? XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben