我正在尝试制作一个简单的区块链,并根据本教程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 {}
请帮助我,谢谢。
答案 0 :(得分:2)
您的身体数据是一个JSON数组,因此解组必须是一个数组
var data []map[string]interface{} // add this to declaration
err = json.Unmarshal([]byte(body), &data)