19 lines
578 B
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)
|
|
}
|