"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 루프 반복 없이 JSON을 맵으로 효율적으로 역마샬링하는 방법은 무엇입니까?

루프 반복 없이 JSON을 맵으로 효율적으로 역마샬링하는 방법은 무엇입니까?

2024-11-01에 게시됨
검색:657

How to Efficiently Unmarshal JSON into a Map Without Loop Iteration?

JSON을 맵으로 효율적으로 비정렬화

프로그래밍 영역에서 외부 소스의 데이터를 구문 분석하는 것은 중요한 역할을 합니다. 유비쿼터스 데이터 형식인 JSON을 처리할 때 이를 지도로 효율적으로 역마샬링하는 기능이 필수적입니다.

다음 JSON 데이터가 발생한다고 가정합니다.

{"fruits":["apple","banana","cherry","date"]}

그리고 "과일"을 map[string]인터페이스{}에 로드하는 것을 목표로 합니다. 기존 접근 방식에는 각 요소를 반복하고 루프를 통해 맵에 삽입하는 작업이 포함됩니다. 그러나 루프 반복이 필요하지 않은 보다 효율적인 방법이 있습니다.

반복 없이 직접 비정렬화

수동 루프 없이 JSON 데이터를 원하는 맵으로 직접 비정렬화하려면 반복하려면 다음 단계를 따르세요.

  1. 필요한 패키지 가져오기: import "encoding/json"
  2. 마샬링되지 않은 데이터를 수신할 맵 변수 정의: var m map[string][] string
  3. json.Unmarshal을 사용하여 JSON 데이터를 맵 변수로 역마샬링합니다. json.Unmarshal(src_json, &m)
  4. 맵 키를 참조하여 마샬링되지 않은 데이터에 액세스합니다. m["fruits" ][0]

구현 예

package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}

참고: 이 접근 방식에서는 JSON 값이 모두 문자열이라고 가정합니다. 값의 유형이 다른 경우 그에 따라 지도 유형을 수정해야 할 수도 있습니다(예: map[string][]interface{}).

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3