gpt4 book ai didi

go - 如何更新结构的数据并将其保存在链代码中?

转载 作者:IT王子 更新时间:2023-10-29 02:12:37 24 4
gpt4 key购买 nike

以下是链代码的摘录,我在其中创建了一个保存基本信息的客户结构。我希望编写一个更新函数,首先使用 UID(args[0]) 获取客户的详细信息,然后根据函数更新的第二个参数附加/更新国家/地区,最后保存更新的数据。我究竟做错了什么?另外我想知道 Marshal 和 Unmarshal 的概念。

type Customer struct {
UID string
Name string
Address struct {
StreetNo string
Country string
}
}
func (t *SimpleChaincode) update(stub shim.ChaincodeStubInterface, args []string) ([]byte, error) {


if len(args) != 2 {
return nil, errors.New("Incorrect number of arguments. Expecting name of the key to query")
}
//args[0] to get the UID of customer whose details to be updated
//args[1] data that needs to be updated

data,err:= stub.GetState(ars[0])
if err != nil {
return nil, err
}
json.Unmarshal(data, &uid)
//append
data.Country= append(data.Country,args[1])
fmt.Printf("Risk Fag set for UID %s",data)

raw, err := json.Marshal(data)
if err != nil {
return nil, err
}

stub.PutState(data.UID, raw)

return nil,nil

}

最佳答案

在 Fabric 链代码示例中,有一个很好的将结构编码和解码到 JSON 的示例。它演示了如何从链中读取 JSON 数据,更新结构的某些字段,然后将 JSON 数据重新保存到链中。请参阅示例中的 transferMarble 函数:

https://github.com/hyperledger/fabric/blob/release/examples/chaincode/go/marbles02/marbles_chaincode.go

关于go - 如何更新结构的数据并将其保存在链代码中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41819912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com