使用golang从http网络服务器中提取特定数据和最新数据

时间:2019-05-29 08:00:20

标签: json go

我正在尝试制作一个简单的区块链,并根据本教程https://github.com/mycoralhealth/blockchain-tutorial/tree/master/proof-work将数据存储到Web服务器。我想使用get请求获取最新值,但仅获取特定数据,而不是所有数据,例如PrevHash和Data。

我尝试使用此代码将获取请求发送到服务器。

has_one_attached :image, dependent: :destroy

但是它给出了输出: package main import ( "net/http" "log" "io/ioutil" "fmt" "encoding/json") func main() { MakeRequest() } func MakeRequest() { resp, err := http.Get("http://localhost:5555/") if err != nil { log.Fatalln(err) } body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln(err) } var data map[string]interface{} err = json.Unmarshal([]byte(body), &data) if err != nil { panic(err) } fmt.Println(data["Data"]) }

更新: 这是我在网络服务器中的数据。我想基于始终更新的最新NoBlock获取参数“ Data”的值。

panic: json: cannot unmarshal array into Go value of type map[string]interface {}

请帮助我,谢谢。

1 个答案:

答案 0 :(得分:2)

您的身体数据是一个JSON数组,因此解组必须是一个数组

var data []map[string]interface{} // add this to declaration
err = json.Unmarshal([]byte(body), &data)