반응형
Go에서 JSON 어레이를 해석하는 방법
json 패키지를 사용하여 Go에서 문자열(어레이)을 해석하려면 어떻게 해야 합니까?
type JsonType struct{
Array []string
}
func main(){
dataJson = `["1","2","3"]`
arr := JsonType{}
unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array)
log.Printf("Unmarshaled: %v", unmarshaled)
}
의 반환값Unmarshal
에러입니다.인쇄하는 내용은 다음과 같습니다.
// Return value type of Unmarshal is error.
err := json.Unmarshal([]byte(dataJson), &arr)
이 모든 것을 없앨 수 있습니다.JsonType
슬라이스만 사용하면 됩니다.
package main
import (
"encoding/json"
"log"
)
func main() {
dataJson := `["1","2","3"]`
var arr []string
_ = json.Unmarshal([]byte(dataJson), &arr)
log.Printf("Unmarshaled: %v", arr)
}
// prints out:
// 2009/11/10 23:00:00 Unmarshaled: [1 2 3]
코드온플레이: https://play.golang.org/p/GNWlylavam
배경: 포인터를 전달하면Unmarshal
메모리 할당을 삭감(또는 완전히 배제)합니다.또, 처리 컨텍스트에서는, 발신자는 같은 값을 반복해 재이용해, 할당을 보존할 수도 있습니다.
주의: 이 답변은 질문을 편집하기 전에 작성되었습니다.첫 번째 질문에서 &arr
에 전달되었다.json.Unmarshal()
:
unmarshaled := json.Unmarshal([]byte(dataJson), &arr)
다음 주소를 전달합니다.arr
JSON 배열을 마킹 해제하려면arr
는 배열(또는 슬라이스)이 아니라 구조값입니다.
어레이를 Go 어레이 또는 슬라이스로 분할 해제할 수 있습니다.그러니 패스arr.Array
:
dataJson := `["1","2","3"]`
arr := JsonType{}
err := json.Unmarshal([]byte(dataJson), &arr.Array)
log.Printf("Unmarshaled: %v, error: %v", arr.Array, err)
2009/11/10 23:00:00 Unmarshaled: [1 2 3], error: <nil>
물론 당신은 심지어 그 모든 것을JsonType
래퍼, 간단한 사용만 하면 됩니다.[]string
슬라이스:
dataJson := `["1","2","3"]`
var s []string
err := json.Unmarshal([]byte(dataJson), &s)
언급URL : https://stackoverflow.com/questions/38867692/how-to-parse-json-array-in-go
반응형
'programing' 카테고리의 다른 글
반응 전달 소품(하나 제외) (0) | 2023.04.06 |
---|---|
플러그인 없이 체크아웃 완료 전에 이미지를 업로드 할 수 있는 방법이 있나요? (0) | 2023.04.06 |
버튼 클릭 한 번으로 반응 시 입력 비활성화 (0) | 2023.04.06 |
Wordpress REST API 느린 응답 시간 (0) | 2023.04.01 |
componentDidUpdate vs componentWillReceiveProps 사용 사례 in react (0) | 2023.04.01 |