JSON을 구조체로 구문 분석

이 짧은 스니펫은 파일에 저장된 일반 임의 구조로 JSON을 구문 분석하는 방법을 보여줍니다.

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "os"
)

func main() {

    path := "./obj.json"

    jsonFile, err := os.Open(path)
    if err != nil {
        fmt.Println(err)
    }
    defer jsonFile.Close()
    bytes, _ := ioutil.ReadAll(jsonFile)

    var parsed map[string]interface{}
    json.Unmarshal([]byte(bytes), &parsed)
    fmt.Printf("%#v", parsed)

}


코드를 테스트하려면 다음과 같은 json 파일을 사용할 수 있습니다.
obj.json
{
  "prop": "value",
  "students": [
    {
      "name": "John",
      "age": "20",
      "marks": "80",
      "address": {
        "city": "New York",
        "state": "NY"
      }
    },
    {
      "name": "Jane",
      "age": "20",
      "marks": "90",
      "address": {
        "city": "New York",
        "state": "NY"
      }
    }
  ]
}


이 예의 출력은 다음과 같습니다.

map[string]interface {}{"prop":"value", "students":[]interface {}{map[string]interface {}{"address":map[string]interface {}{"city":"New York", "state":"NY"}, "age":"20", "marks":"80", "name":"John"}, map[string]interface {}{"address":map[string]interface {}{"city":"New York", "state":"NY"}, "age":"20", "marks":"90", "name":"Jane"}}}%



지도[문자열]인터페이스 {}{"소품":"값", "학생":[]인터페이스 {}{지도[문자열]인터페이스 {}{"주소":지도[문자열]인터페이스 {}{"도시": "뉴욕", "주":"뉴욕"}, "나이":"20", "마크":"80", "이름":"존"}, 지도[문자열]인터페이스 {}{"주소":map[string]interface {}{"도시":"뉴욕", "주":"뉴욕"}, "나이":"20", "마크":"90", "이름":"제인"}}}%

참고: JSON 개체에 미리 알고 있는 형식이 있는 경우 map[string]interface{} 대신 구조체를 사용할 수 있습니다.


저는 DoTenX의 관리자입니다. Golang으로 코딩하거나 배우는 것을 좋아한다면 이 저장소를 살펴보도록 초대합니다.

https://github.com/dotenx/dotenx

좋은 웹페이지 즐겨찾기