Skip to content

Instantly share code, notes, and snippets.

@yshuman1
Last active February 23, 2019 08:22
Show Gist options
  • Save yshuman1/028fe6f0b71ac8a5090a8c6c086547df to your computer and use it in GitHub Desktop.
Save yshuman1/028fe6f0b71ac8a5090a8c6c086547df to your computer and use it in GitHub Desktop.
body, _ := ioutil.ReadAll(resp.Body)
//create a slice of type Items and unmarshal json to slice
type inventory struct {
Type string `json:"type"`
Data json.RawMessage
}
var invData inventory
if err := json.Unmarshal(body, &invData); err != nil {
log.Infof("\nError unmarshaling json body for item data: %#v\n", err)
return nil, err
}
var Data model.InventoryData
switch invData.Type {
case "ITEM":
var i model.Item
if err := json.Unmarshal([]byte(invData.Data), &i); err != nil {
log.Infof("\nError unmarshaling json body for item data: %#v\n", err)
Data.Items = append(Data.Items, i)
}
case "CATEGORY":
var c model.Category
if err := json.Unmarshal([]byte(invData.Data), &c); err != nil {
log.Infof("\nError unmarshaling json body for item data: %#v\n", err)
Data.Categories = append(Data.Categories, c)
}
case "MODIFIER_LIST":
var m model.Modifier
if err := json.Unmarshal([]byte(invData.Data), &m); err != nil {
log.Infof("\nError unmarshaling json body for item data: %#v\n", err)
Data.Modifiers = append(Data.Modifiers, m)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment