"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > GO에 문자열로 저장된 Float64 값으로 JSON 문자열을 디코딩하는 방법은 무엇입니까?

GO에 문자열로 저장된 Float64 값으로 JSON 문자열을 디코딩하는 방법은 무엇입니까?

2025-03-23에 게시되었습니다
검색:655

How to Decode JSON Strings with Float64 Values Stored as Strings in Go?

오류 이해 :

json: cannot unmarshal string into Go value of type float64

[galaxy nexus ":"3460.00 ":"3460.00 "}"} "}" 오류 :

json : 유형의 go 값으로 끊임없이 문자열을 할 수 없다. 이 문제를 해결하려면 유형 변환 주석을 사용하여 문자열을 플로트 64로 처리하도록 디코더에 명시 적으로 지시해야합니다. 이 주석은 제품 구조물의 필드 정의에 추가됩니다 :

type Product struct {
    Name  string
    Price float64 `json:",string"`
}

The ", String"Tag는 JSON 디코더에게 가격 필드가 float64로 변환되어야하는 문자열이라고 말합니다. 수입 (수입) "인코딩/json" "FMT" )) 유형 제품 구조 { 이름 문자열 Price Float64` JSON : ", String"` } func main () { s : =`{ "name": "galaxy nexus", "price": "3460.00"}` var pro 제품 err : = json.unmarshal ([] byte (s), & pro) err == nil {인 경우 fmt.printf ( "% v \ n", pro) } 또 다른 { fmt.println (err) fmt.printf ( "% v \ n", pro) } }

예상 출력 :

이 코드를 실행하는이 코드를 실행하면

package main

import (
    "encoding/json"
    "fmt"
)

type Product struct {
    Name  string
    Price float64 `json:",string"`
}

func main() {
    s := `{"name":"Galaxy Nexus", "price":"3460.00"}`
    var pro Product
    err := json.Unmarshal([]byte(s), &pro)
    if err == nil {
        fmt.Printf("% v\n", pro)
    } else {
        fmt.Println(err)
        fmt.Printf("% v\n", pro)
    }
}

json: cannot unmarshal string into Go value of type float64
json을 성공적으로 변환했습니다. float64.

최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3