JSON (Newtonsoft) - Path erstellen wenn nicht vorhanden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von nogood.

    JSON (Newtonsoft) - Path erstellen wenn nicht vorhanden

    Hey,

    ich versuche gerade dynamisch eine JSON File zu erzeugen. Nun würde ich gerne einen bestimmten Pfad erstellen wenn dieser nicht vorhanden ist.
    Hierzu erstelle ich eine List mit entsprechenden Pfaden. Das funktioniert auch soweit. Wenn ich aber ein verschachtelten Pfad erstellen möchte, geht das nicht. Beispiel "Kategorie_3.Details". Der Pfad wird dann nicht verschachtelt sondern als einziger erstellt.

    VB.NET-Quellcode

    1. Imports Newtonsoft.Json.Linq
    2. Dim mylist As New List(Of String)
    3. With mylist
    4. .Add("Kategorie_1")
    5. .Add("Kategorie_2")
    6. .Add("Kategorie_3.Details")
    7. End With
    8. For Each i As String In mylist
    9. Dim json_obj As JObject = JObject.Parse("{}")
    10. json_obj.Add(i, New JObject)
    11. Next


    wie kann ich dynamisch auf diesem Wege ein verschachtelten Pfad erstellen?

    Herzlichen Dank schon mal :)
    Möglicherweise geht es auch, indem du eine List (Of Object) verwendest.

    Keine Ahnung, ich hab immer nur Objektlisten als JSON gespeichert, weil der der die Daten bekommt die ja auch zurück parsen will… das ginge dann wie folgt:

    Indem du eine eigene Klasse „MeineKlasse“ erstellst und dieser alle benötigten Eigenschaften (Property) gibst. Besitzt eine dieser Eigenschaften wiederum den Datentypen einer anderen Klasse („Details“), so hast du im JSON dann die verschachtelung.

    Z.b.
    Aufbau Klasse MeineKlasse
    1. Eigenschaft: Kategorie_1 As String
    2. Eigenschaft: Kategorie_2 As String
    3. Eigenschaft: Infos As Details
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @Sub7evenHH Klarstellungsfrage: Du möchtest Ordner und unter Ordner erstellen und zwar so das

    List of String
    "Kategorie_1" -> falls Ordner nicht existiert dann erzeuge ihn mit dem Namen "Kategorie_1"
    ...
    "Kategorie_3.Details" -> falls Ordner nicht existiert dann erzeuge Orderstruktur "Kategorie_3/Details"

    Fall es das ist, was Du machen möchtest ist das doch kein Problem. Teil doch den String ab dem '.' auf.
    Mit Regex oder was auch immer und dann mit (von C# nach VB mit Telerik Converter):

    VB.NET-Quellcode

    1. ​Private Sub SurroundingSub()
    2. Dim root As String = "C:\Temp"
    3. Dim subdir As String = "C:\Temp\UnterOrdner"
    4. If Not Directory.Exists(root) Then
    5. Directory.CreateDirectory(root)
    6. End If
    7. If Not Directory.Exists(subdir) Then
    8. Directory.CreateDirectory(subdir)
    9. End If
    10. End Sub


    Das wäre ja erstmal json unabhängig.
    Erklär doch nochmal was genau passieren soll. Wo kommen den die Ordnernamen her und ist der SubOrdner immer mit Punkt getrennt?
    codewars.com Rank: 4 kyu