以下は、基本情報を保存する顧客構造を作成したチェーンコードの抜粋です。 UID(args [0])を使って顧客の詳細を最初に取り出し、関数更新の2番目の引数としてCountryを追加/更新し、最終的に更新されたデータを保存する更新関数を記述したいと思います。 私は何が間違っていますか?また、私はマーシャルとアンマーシャルという概念を知りたいと思います。構造体のデータを更新してチェーンコードに保存するにはどうすればいいですか?
あなたはJSONパッケージが、これは任意のデータ型に文字列のマップを保持するデコードdata.For例を置くことができる変数を提供する必要があり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
}