亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將結構寫入分類帳狀態

如何將結構寫入分類帳狀態

Go
一只名叫tom的貓 2022-07-11 15:00:42
我正在嘗試為具有映射的 Hyperledger 編寫鏈代碼,該映射存儲映射到字符串的結構值。這是我第一次為 Hyperledger 編寫合約,也是我第一次使用 go,看來我沒有以正確的方式處理這個問題。這是我的映射、數據結構、初始化函數和顯示問題的 addVData 函數。type Data struct{    Timestamp string    Velocity string    Location string}var all_data map[string]Datafunc (t *DataContract) Init(stub shim.ChaincodeStubInterface) peer.Response {    all_data = make(map[string]Data)    return shim.Success(nil)}func (t *DataContract) addVData(stub shim.ChaincodeStubInterface, args []string) peer.Response {    params := stub.GetStringArgs()    fmt.Println("The params passed in are:", params)    if len(params) != 4 {        fmt.Println("Please resubmit in this particular order: addVData, Timestamp, Velocity, Location")        return shim.Error("Please resubmit in this particular order: addVData, Timestamp, Velocity, Location")    }    var d = Data{Timestamp:params[1], Velocity:params[2], Location:params[3]}    all_data[params[1]] = d    var err = stub.PutState(params[1],d)    return shim.Success(nil)}我得到的錯誤實際上非常清楚:./data.go:79:35:不能在 stub.PutState 的參數中使用 d(數據類型)作為類型 []byte我想知道,由于我的數據不是字節數組的形式,我該如何存儲它?另外,我不確定我是否以正確的方式實現了 Init 方法和映射,但很難找到示例。如果您能解釋并指出正確的方向,將不勝感激,謝謝。
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

使用json.Marshal函數轉換struct成bytes


type UserData struct {

 a string

}



userdata := &UserData{a: "hello"}


// Mashelling struct to jsonByte object to put it into the ledger

userDataJSONBytes, err := json.Marshal(&userdata)

if err != nil {

    return shim.Error(err.Error())

}


var err = stub.PutState(params[1],userDataJSONBytes)


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號