Skip to content

problems unmarshaling JSON to struct; panic: interface conversion: interface {} is string, not []uint8 #275

Answered by houten11
yuphing-ong asked this question in Q&A
Discussion options

You must be logged in to vote

I think that value type depends on the driver used. To be safe you can handle both cases, for string and []byte:

func (m *JsonTypes) Scan(value interface{}) error {
	var byteArray []byte

	switch v := value.(type) {
	case string:
		byteArray = []byte(v)
	case []byte:
		byteArray = v
	default:
		return errors.New("invalid type")
	}

	return json.Unmarshal(byteArray, m)
}

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
1 reply
@houten11
Comment options

Answer selected by yuphing-ong
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants