JSON 중첩 개체를 문자열 또는 바이트 슬라이스로 역마샬링
JSON 데이터에서 중첩 개체는 추가 수준의 정보를 제공합니다. 그러나 이 데이터를 Go 구조로 역마샬링할 때 이러한 객체를 구문 분석된 값이 아닌 원시 데이터로 처리할 수 있습니다.
이를 달성하기 위해 인코딩/json 패키지는 json.RawMessage라는 솔루션을 제공합니다.
RawMessage를 사용하여 중첩 객체를 원시 데이터로 처리
json.RawMessage 인코딩된 JSON 데이터를 나타내는 유형입니다. 이를 통해 JSON 디코딩을 지연하거나 JSON 인코딩을 미리 계산할 수 있습니다.
이는 중첩된 개체를 문자열 또는 바이트 슬라이스로 처리하려는 경우 특히 유용합니다. 사용 방법은 다음과 같습니다.
import ( "encoding/json" "fmt" ) type Bar struct { Id int64 `json:"id"` Foo json.RawMessage `json:"foo"` } func main() { // Example JSON with a nested object jsonStr := []byte(`{ "id" : 15, "foo" : { "foo": 123, "bar": "baz" } }`) var bar Bar err := json.Unmarshal(jsonStr, &bar) if err != nil { panic(err) } fmt.Printf("%+v\n", bar) }
출력 예
{Id:15 Foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 32 34 98 97 122 34 32 125]}
json.RawMessage를 사용하면 중첩된 객체를 원시 문자열로 처리하거나 바이트 슬라이스. 이를 통해 데이터를 추가로 처리하거나 나중에 사용하기 위해 저장할 수 있습니다.
위 내용은 Go에서 중첩된 JSON 객체를 문자열이나 바이트 슬라이스로 역마샬링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!