AddInterfaceKeyOmitEmpty adds an interface{} to be encoded, must be used inside an object as it will encode a key
(key string, v interface{})
| 132 | |
| 133 | // AddInterfaceKeyOmitEmpty adds an interface{} to be encoded, must be used inside an object as it will encode a key |
| 134 | func (enc *Encoder) AddInterfaceKeyOmitEmpty(key string, v interface{}) { |
| 135 | switch vt := v.(type) { |
| 136 | case string: |
| 137 | enc.AddStringKeyOmitEmpty(key, vt) |
| 138 | case bool: |
| 139 | enc.AddBoolKeyOmitEmpty(key, vt) |
| 140 | case MarshalerJSONArray: |
| 141 | enc.AddArrayKeyOmitEmpty(key, vt) |
| 142 | case MarshalerJSONObject: |
| 143 | enc.AddObjectKeyOmitEmpty(key, vt) |
| 144 | case int: |
| 145 | enc.AddIntKeyOmitEmpty(key, vt) |
| 146 | case int64: |
| 147 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 148 | case int32: |
| 149 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 150 | case int16: |
| 151 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 152 | case int8: |
| 153 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 154 | case uint64: |
| 155 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 156 | case uint32: |
| 157 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 158 | case uint16: |
| 159 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 160 | case uint8: |
| 161 | enc.AddIntKeyOmitEmpty(key, int(vt)) |
| 162 | case float64: |
| 163 | enc.AddFloatKeyOmitEmpty(key, vt) |
| 164 | case float32: |
| 165 | enc.AddFloat32KeyOmitEmpty(key, vt) |
| 166 | default: |
| 167 | if vt != nil { |
| 168 | enc.err = InvalidMarshalError(fmt.Sprintf(invalidMarshalErrorMsg, vt)) |
| 169 | return |
| 170 | } |
| 171 | return |
| 172 | } |
| 173 | } |