2017-03-21 2 views
-1

Ich möchte die folgende JSON-Datei analysieren und auch die einzelnen Felder verweisen.Golan Parsing JSON-Datei

Die JSON-Datei hat einige bekannte Muster: Die JSON-Datei hat zwei Gruppenebenen. Es wird eine variable aber unbekannte Anzahl von Gruppen der ersten Ebene haben. Jede Gruppe der ersten Ebene hat zwei Gruppen der zweiten Ebene: die Regel- und die Konfigurationsgruppe. Sowohl die Regelgruppe als auch die Konfigurationsgruppe haben eine unbekannte Anzahl von Schlüssel: Wert-Paaren.

{ 
    { // Comment: first level group 
    { // Comment: second level group 
     "rule1": "doA" 
     "rule2": "doB" 
     "rule3": "doC" 
     ... 
    } 
    { 
     "config1": "goA" 
     "configX": "goB" 
     ... 
    } 
    } 
    ... 
    { 
    { 
     "rule100": "doAAA" 
     "rule200": "doBBB" 
     "rule300": "doCCC" 
     ... 
    } 
    { 
     "config100": "goAAA" 
     "configX00": "goBBB" 
     ... 
    } 
} 
+2

Das sieht nicht wie gültiger JSON aus, sollten nicht die Wurzel und die erste Gruppe Arrays sein? – mkopriva

Antwort

3

Sie können map s und slice s für die unbekannten Nummern verwenden.

type FirstGroup struct { 
    Rules Rules `json:"rules"` 
    Configs Configs `json:"configs"` 
} 

type Rules map[string]string 

type Configs map[string]string 

https://play.golang.org/p/zCymz62B9K < - Die json in diesem Beispiel ist eine modifizierte Version Ihres ist, weil Ihr nicht wirklich json ist.

+0

Sehr cool! Wie kann ich auf das Schlüsselfeld in den Regeln und Konfigurationen verweisen? – drdot

+0

@elixir Ja, Sie können. https://play.golang.org/p/3SiaiusnTj – mkopriva