Я пытаюсь создать простую цепочку блоков и сохранить данные на веб-сервере на основе этого урока https://github.com/mycoralhealth/blockchain-tutorial/tree/master/proof-work. Я хочу получить последнее значение с помощью запроса get, но только конкретные данные, а не все данные, например только PrevHash и Data.
Я попробовал этот код, чтобы отправить запрос на получение на сервер.
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"])
}
Но это дает вывод:
panic: json: cannot unmarshal array into Go value of type map[string]interface {}
Обновление:
Это мои данные в веб-сервере. Я хочу получить значение параметра «Данные» на основе новейшего NoBlock, который всегда обновляется.
([]main.Block) (len=2 cap=2) {
(main.Block) {
NoBlock: (int) 0,
Timestamp: (string) (len=39) "2019-05-29 14:50:00.966201709 +0800 +08",
Data: (string) "",
Hash: (string) (len=64) "5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9",
PrevHash: (string) "",
Difficulty: (int) 0,
Nonce: (string) ""
},
(main.Block) {
NoBlock: (int) 1,
Timestamp: (string) (len=39) "2019-05-29 14:50:12.891324534 +0800 +08",
Data: (string) (len=110) "3e19124ee3a459d5c6edcb9b2a37cf2c4febd2e3ab8a8628f1bfb197bdaf5accada8349d9a99cfbf7cdd1af003c14f7c5c004f53c1d231",
Hash: (string) (len=64) "b2aebe50c3ace8230cb8d839d4e36da8899a2d0f0a3c1dbc9e9c717f74ead464",
PrevHash: (string) (len=64) "5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9",
Difficulty: (int) 0,
Nonce: (string) (len=1) "0"
}
}
Пожалуйста, помогите мне, спасибо.