64 lines
1.5 KiB
Go
64 lines
1.5 KiB
Go
package baseroom
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
type PlayerLog struct {
|
|
UId int64 `json:"uid"` // 玩家id
|
|
Seat int `json:"seat"` // 座位号
|
|
CostItem []Item `json:"cost_item"` // 消耗物品
|
|
}
|
|
|
|
type GameLogT struct {
|
|
Players []*PlayerLog `json:"players"` // 玩家数据
|
|
}
|
|
|
|
type StructM struct {
|
|
Players []map[string]interface{} `json:"players"` // 玩家数据
|
|
}
|
|
|
|
type B struct {
|
|
I int `json:"i"`
|
|
}
|
|
|
|
type B2 struct {
|
|
I2 int `json:"i2"`
|
|
}
|
|
|
|
func (b *B) GetId() int {
|
|
return b.I
|
|
}
|
|
|
|
type C struct {
|
|
*B
|
|
*B2
|
|
Z int `json:"z"`
|
|
}
|
|
|
|
// 测试添加金币
|
|
func TestStruct(t *testing.T) {
|
|
//game := new(BaseGameLog)
|
|
//game.Players = append(game.Players, &BasePlayerLog{UId: 1, Seat: 0, CostItem: []ItemLog{{Id: 10, Num: 10}, {Id: 11, Num: 11}}})
|
|
//game.Players = append(game.Players, &BasePlayerLog{UId: 2, Seat: 1, CostItem: []ItemLog{{Id: 20, Num: 20}, {Id: 21, Num: 21}}})
|
|
//b1, _ := json.Marshal(game)
|
|
m := new(StructM)
|
|
p1 := map[string]interface{}{"uid": 1, "seat": 0, "cost_item": []Item{{Id: 10, Num: 10}, {Id: 11, Num: 11}}}
|
|
p2 := map[string]interface{}{"uid": 2, "seat": 1, "cost_item": []Item{{Id: 20, Num: 20}, {Id: 21, Num: 21}}}
|
|
m.Players = append(m.Players, p1)
|
|
m.Players = append(m.Players, p2)
|
|
b2, _ := json.Marshal(m)
|
|
|
|
game := new(GameLogT)
|
|
_ = json.Unmarshal(b2, game)
|
|
b1, _ := json.Marshal(game)
|
|
|
|
t.Log(string(b1))
|
|
t.Log(string(b2))
|
|
|
|
c := C{B: &B{I: 10}, B2: &B2{I2: 12}, Z: 1}
|
|
sc, _ := json.Marshal(c)
|
|
t.Log(string(sc))
|
|
}
|