myxce/src/frontend/xcecli/models/ordermap.go

19 lines
578 B
Go

package models
import "encoding/json"
// UnmarshalOrderMapRow extracts the Data sub-object from the server's OrderMap wire format
// {"Fields":[...],"Data":{...}} and unmarshals it into dst.
// If the input is not an OrderMap wrapper, it falls back to direct unmarshal.
func UnmarshalOrderMapRow(data []byte, dst interface{}) error {
var wrapper struct {
Data json.RawMessage `json:"Data"`
}
if err := json.Unmarshal(data, &wrapper); err != nil {
return err
}
if wrapper.Data == nil {
return json.Unmarshal(data, dst)
}
return json.Unmarshal(wrapper.Data, dst)
}