首页后端开发其他后端知识无法解析json怎么办,golang有什么解决办法

无法解析json怎么办,golang有什么解决办法

时间2024-03-27 04:08:04发布访客分类其他后端知识浏览1383
导读:在实际案例的操作过程中,我们可能会遇到“无法解析json怎么办,golang有什么解决办法”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起...
在实际案例的操作过程中,我们可能会遇到“无法解析json怎么办,golang有什么解决办法”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

golang无法解析json的解决办法:

golang首字母大小写意味着改变了成员的访问权限,小写就变成私有的了,不同package是无法访问其他package的私有成员的,导致json.Marshal(其使用了reflect)无法反射到内容。

打个比方,你如果把json.Marshal(hp)这个方法的重新实现在main方法下面,struct中的成员变量就可以小写了。

注意:

struct内的成员变量小写就只有当前包内可以访问。

Golang HTTP请求Json响应解析方法

响应数据如下:

{

"number": 3,
"message": "success",
"people": [{

"craft": "ISS",
"name": "Chris Cassidy"
}
, {

"craft": "ISS",
"name": "Anatoly Ivanishin"
}
, {

"craft": "ISS",
"name": "Ivan Vagner"
}
]
}

下面是一个http请求并解析json数据到结构体里的示例

package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"time"
)
type people struct {

Number int `json:"number"`
}

func main() {

url := "http://api.open-notify.org/astros.json"
spaceClient := http.Client{

Timeout: time.Second * 2, // Maximum of 2 secs
}

req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {

log.Fatal(err)
}

req.Header.Set("User-Agent", "spacecount-tutorial")
res, getErr := spaceClient.Do(req)
if getErr != nil {

log.Fatal(getErr)
}

if res.Body != nil {

    defer res.Body.Close()
}

body, readErr := ioutil.ReadAll(res.Body)
if readErr != nil {

log.Fatal(readErr)
}

people1 := people{
}
    
jsonErr := json.Unmarshal(body, &
people1)
if jsonErr != nil {

log.Fatal(jsonErr)
}

fmt.Println(people1.Number)
}
    

以上就是关于无法解析json怎么办,golang有什么解决办法的介绍啦,需要的朋友可以参考上述内容,希望对大家有帮助,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

golangjson

若转载请注明出处: 无法解析json怎么办,golang有什么解决办法
本文地址: https://pptw.com/jishu/653969.html
AJAX、Fetch和axios分别是什么,有何不同 用Bootstrap怎样实现消除浮动,方法是什么

游客 回复需填写必要信息