如何解析Golang中的JSON字符串? [英] How do I parse a JSON string in Golang?
本文介绍了如何解析Golang中的JSON字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
http://127.0.0.1:3001/find?field=hostname& field = App& filters = [hostname:example.com,type:vm]
如何提取与例如主机名'example.com'和类型'vm'的键相对应的JSON值。
我正在尝试
filters:= r.URL.Query()[filters]
给出以下输出:
[[hostname:example .com,type:vm]]
解决方案
使用编码/ json 包解析JSON。示例URL中的查询字符串不包含有效的JSON。
以下示例显示了如何在略有不同的URL上使用JSON解析器。
s:=`http://127.0.0.1:3001/find?field=hostname&field=App&filters={\"hostname: example.com,type:vm}`
u,err:= url.Parse(s)
if err!= nil {
log.Fatal(err)
var v map [string] string
err = json.Unmarshal([] byte(u.Query()。Get(filters)),& v)
if err!= nil {
log.Fatal(err)
}
fmt.Println(v)
Given a URL like the following.
http://127.0.0.1:3001/find?field=hostname&field=App&filters=["hostname":"example.com,"type":"vm"]
How do I extract JSON values corresponding to keys for eg: hostname 'example.com' and type 'vm'.
I am trying
filters := r.URL.Query()["filters"]
which gives following output:
[["hostname":"example.com,"type":"vm"]]
解决方案
Use the encoding/json package to parse JSON. The query string in the example URL does not contain valid JSON.
Here's an example show how to use the JSON parser on a slightly different URL.
s := `http://127.0.0.1:3001/find?field=hostname&field=App&filters={"hostname":"example.com","type":"vm"}`
u, err := url.Parse(s)
if err != nil {
log.Fatal(err)
}
var v map[string]string
err = json.Unmarshal([]byte(u.Query().Get("filters")), &v)
if err != nil {
log.Fatal(err)
}
fmt.Println(v)
这篇关于如何解析Golang中的JSON字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文