4

I am trying to decode an array of strings in golang and cannot unmarshall this json in golang

"{\"keys\":[\"CovePDF:metadata:deadlineDate:asfsdbdjh\",\"CovePDF:metadata:endedOnDate:asfsdbdjh\",\"CovePDF:metadata:moderators:asfsdbdjh\",\"CovePDF:metadata:reviewers:asfsdbdjh\",\"CovePDF:metadata:title:asfsdbdjh\",\"CovePDF:metadata:initiator:asfsdbdjh\",\"CovePDF:metadata:startOnDate:asfsdbdjh\"]}"

my struct looks like this:

type Keys struct {
     keys []string `json:"keys"`
}

and than trying to do

    keys := args[0] 
    ks := Keys{}
    err0 := json.Unmarshal([]byte(keys), &ks)

I got an error in the logs of:

error: unexpected end of JSON input error: Unmarshal unexpected end of JSON input error: unexpected end of JSON input

1 Answer 1

3

The JSON package can only process exported struct fields (e.g. start with a capital letter). That's why you use the JSON tag so you can change the tag name/case to use.

Otherwise, this works as you would expect. See example:

https://play.golang.org/p/pRVKNrekWe

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.