알 수 없는 구조로 JSON 디코딩
프로그래밍 영역에서 JSON(JavaScript Object Notation)은 데이터를 표현하는 수단으로 사용되는 경우가 많습니다. 소프트웨어 응용 프로그램. 그러나 익숙하지 않은 구조의 JSON을 접할 경우 특정 정보를 추출하는 것이 어려울 수 있습니다. 다음 시나리오를 고려하십시오.
다음과 같은 JSON 문자열을 처리해야 합니다.
{ "votes": { "option_A": "3" } }
목표는 "count" 키를 포함하여 이 JSON을 확장하여 다음과 같은 결과를 출력하는 것입니다. :
{ "votes": { "option_A": "3" }, "count": "1" }
문제는 초기 JSON의 알 수 없는 구조에서 발생합니다. 특정 유형의 구조체에 json.Unmarshal 함수를 사용하는 것과 같은 기존 방법은 적용할 수 없게 됩니다.
해결책: 맵으로 언마샬링
이 장애물을 극복하기 위해 우리는 Go 지도의 유연성을 활용할 수 있습니다. 다음 코드 조각은 JSON을 맵[문자열]인터페이스{}로 역마샬링하는 방법을 보여줍니다.
package main import ( "encoding/json" "fmt" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } // Modify the map by adding the "count" key raw["count"] = 1 // Marshal the modified map back to JSON out, err := json.Marshal(raw) if err != nil { panic(err) } fmt.Println(string(out)) }
JSON을 맵으로 역마샬링하여 모든 입력을 수용할 수 있는 유형에 구애받지 않는 데이터 구조를 효과적으로 생성합니다. . 이를 통해 사전 정의된 유형에 의존하지 않고 JSON 콘텐츠에 동적으로 액세스하고 수정할 수 있습니다.
위 코드의 최종 출력은 다음과 같습니다.
{ "votes": { "option_A": "3" }, "count": "1" }
이 접근 방식은 편리하고 유연한 알 수 없는 구조의 JSON을 디코딩하여 개발자가 데이터를 효율적으로 추출하고 조작할 수 있도록 지원하는 솔루션입니다.
위 내용은 Go에서 알 수 없는 구조로 JSON을 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!