我跟随json
<img ng-src="{{'data:image/png;charset=utf-8;base64,' + response.data.path}}">
基于给定的answer我试过了
[{"href":"/publication/192a7f47-84c1-445e-a615-ff82d92e2eaa/article/b;version=1493756861347"},{"href":"/publication/192a7f47-84c1-445e-a615-ff82d92e2eaa/article/a;version=1493756856398"}]
我得到空数组并出现以下错误。有什么建议吗?
json:无法将数组解组为map类型的Go值[string] * json.RawMessage
答案 0 :(得分:4)
您可以按照以下方式取消联系[]map[string]interface{}
:
var objmap map[string]interface{}
if err := json.Unmarshal(data, &objmap); err != nil {
log.Fatal(err)
}
fmt.Println(objmap[0]["href"]) // to parse out your value
要了解有关解组工作原理的详情,请参阅此处:https://godoc.org/encoding/json#Unmarshal
答案 1 :(得分:0)
您的json
是一个数组对象,在encoding/json
包裹编组/解组maps
到/从json 对象而不是数组,因此您可能希望分配slice of maps
。
var objs []map[string]*json.RawMessage
if err := json.Unmarshal([]byte(data), &objs); err != nil {
panic(err)
}
https://play.golang.org/p/3lieuNkoUU
如果您不想使用切片,则始终可以将json数组包装在对象中。
var dataobj = `{"arr":` + data + `}`
var objmap map[string]*json.RawMessage
if err := json.Unmarshal([]byte(dataobj), &objmap); err != nil {
panic(err)
}