登录
首页 >  Golang >  Go问答

golang json解析的问题

来源:SegmentFault

时间:2023-02-24 19:49:33 229浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《golang json解析的问题》,主要介绍了go,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

hello 各位大佬,我在将json解析成结构体的过程中出现了问题

import (
   "fmt"
 jsoniter "github.com/json-iterator/go"
)
type Car struct {
   Other []byte json:"other"
}
func MyJson() {
   j := {"other": {"a":[1,2]}}
   json := jsoniter.ConfigCompatibleWithStandardLibrary
   obj := Car{}
   err := json.Unmarshal([]byte(j), &obj)
   if err != nil {
      fmt.Println(err.Error())
   } else {
      fmt.Println(obj)
   }
}

报错”main.Car.Other: base64Codec: invalid input, error found in #10 byte of ...|{"other": {"a":[1,2]|..., bigger context ...|{"other": {"a":[1,2]}}|...“

还劳烦哪位大佬给解答一下

正确答案

package main

import (
    "fmt"

    jsoniter "github.com/json-iterator/go"
)

type other struct {
    A []int `json:"a,omitempty"`
}

// Car 车
type Car struct {
    Other other `json:"other,omitempty"`
}

func main() {
    j := []byte(`{"other": {"a":[1,2]}}`)
    json := jsoniter.ConfigCompatibleWithStandardLibrary
    obj := Car{}
    err := json.Unmarshal(j, &obj)
    if err != nil {
        fmt.Println(err.Error())
    } else {
        fmt.Printf("%+v\n", obj)
    }
}

Go从字符串解析出结构体,是需要写明所有结构体结构的。

以上就是《golang json解析的问题》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>