2017-03-21 2 views
-1

다음 json 파일을 구문 분석하고 개별 필드를 참조하려고합니다.golang 파싱 json 파일

json 파일에는 알려진 패턴이 있습니다. json 파일에는 두 개의 그룹 수준이 있습니다. 변수는 있지만 알 수없는 첫 번째 레벨 그룹 수를 갖습니다. 첫 번째 레벨 그룹에는 두 번째 레벨 그룹 인 규칙 그룹과 구성 그룹이 있습니다. 룰 그룹과 설정 그룹은 모두 키 : 값 쌍을 알 수 없습니다.

{ 
    { // 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

유효한 json으로 보이지 않습니다. 루트와 첫 번째 그룹이 배열이 아니어야합니까? – mkopriva

답변

3

당신은 그 알 수없는 숫자 map들과 slice의를 사용할 수 있습니다.

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 < - 당신의 정말 JSON하지 않기 때문에이 예에서 JSON은 당신의 수정 된 버전입니다.

+0

매우 근사합니다. 규칙 및 구성에서 키 필드를 어떻게 참조 할 수 있습니까? – drdot

+0

@elixir 예, 가능합니다. https://play.golang.org/p/3SiaiusnTj – mkopriva