@@ -77,33 +77,29 @@ type FunctionItem struct {
77
77
type EventItem struct {
78
78
Type
79
79
80
- Data []Type `json:"data"`
81
- Keys []Type `json:"keys"`
82
- Inputs []Type `json:"inputs"`
80
+ Members []Type `json:"members,omitempty"`
81
+ Data []Type `json:"data"`
82
+ Keys []Type `json:"keys"`
83
+ Inputs []Type `json:"inputs"`
83
84
}
84
85
85
- type members struct {
86
- Members []Type `json:"members"`
86
+ type Members struct {
87
87
}
88
88
89
89
func (item * EventItem ) UnmarshalJSON (data []byte ) error {
90
90
type buf EventItem
91
91
if err := json .Unmarshal (data , (* buf )(item )); err != nil {
92
92
return err
93
93
}
94
- if item .Data == nil && item .Keys == nil {
95
- var m members
96
- if err := json .Unmarshal (data , & m ); err != nil {
97
- return err
98
- }
94
+ if item .Kind == StructType {
99
95
item .Data = make ([]Type , 0 )
100
96
item .Keys = make ([]Type , 0 )
101
- for i := range m .Members {
102
- switch m .Members [i ].Kind {
97
+ for i := range item .Members {
98
+ switch item .Members [i ].Kind {
103
99
case "data" :
104
- item .Data = append (item .Data , m .Members [i ])
100
+ item .Data = append (item .Data , item .Members [i ])
105
101
case "keys" :
106
- item .Keys = append (item .Keys , m .Members [i ])
102
+ item .Keys = append (item .Keys , item .Members [i ])
107
103
}
108
104
}
109
105
}
0 commit comments