func (cs *CharsetID) UnmarshalJSON(p []byte) error {
	if len(p) == 0 {
		return nil
	}
	if p[0] != '"' {
		var u uint16
		if err := json.Unmarshal(p, &u); err != nil {
			return err
		}
		*cs = CharsetID(u)
		return nil
	}
	var s string
	if err := json.Unmarshal(p, &s); err != nil {
		return err
	}
	u, err := strconv.ParseUint(s, 16, 16)
	if err != nil {
		return err
	}
	*cs = CharsetID(u)
	return nil
}
UnmarshalJSON converts the string to a CharsetID
package goversioninfo
import (
	"encoding/json"
	"strconv"
)
type CharsetID uint16
const (
	Cs7ASCII       = CharsetID(0)     
	CsJIS          = CharsetID(932)   
	CsKSC          = CharsetID(949)   
	CsBig5         = CharsetID(950)   
	CsUnicode      = CharsetID(1200)  
	CsLatin2       = CharsetID(1250)  
	CsCyrillic     = CharsetID(1251)  
	CsMultilingual = CharsetID(1252)  
	CsGreek        = CharsetID(1253)  
	CsTurkish      = CharsetID(1254)  
	CsHebrew       = CharsetID(1255)  
	CsArabic       = CharsetID(1256)  
)