不太确定如何访问我感兴趣的值。我所得到的是来自我的ouchDB的响应,如下所示:
response from couchDB in json format
我感兴趣的是使用golang找出“名称”和“电话”值。
如果我运行这段代码,至少要知道id或key的值:
package main
import(
"net/http"
"encoding/json"
"io/ioutil"
"fmt"
)
type rows struct{
Rows []info `json:"rows"`
}
type info struct{
Name string `json:"id"`
}
func main() {
resp, err := http.Get("http://localhost:5984/mydb/_all_docs?include_docs=true")
bytes, _ := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
var d rows
json.Unmarshal(bytes, &d)
fmt.Println(d)
}
所以我尝试用这种方法来获得入门的“名称”:
package main
import(
"net/http"
"encoding/json"
"io/ioutil"
"fmt"
)
type rows struct{
Rows []doc `json:"rows"`
}
type doc struct {
Values []info `json:"doc"`
}
type info struct{
Name string `json:"name"`
}
func main() {
resp, err := http.Get("http://localhost:5984/mydb/_all_docs?include_docs=true")
bytes, _ := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
var d rows
json.Unmarshal(bytes, &d)
fmt.Println(d)
}
但是得到这个回应: Output from script
我对golang还是很陌生,但是我真的想学习如何用它构建简单的API,如果还有其他方法可以在golang中进行操作,请告诉我
答案 0 :(得分:2)
这是我要解决这个问题的方式
1)获取示例json输出并访问网站 https://mholt.github.io/json-to-go/
使用它来自动生成与您的数据匹配的结构 您可能需要调整生成“行”结构的方式
2)使用您刚设计的结构,使用Unmarshall加载数据
3)转储具有%v Printf格式的数据以进行查看,然后找出如何获取名称和电话元素
您将在此处获得一些示例代码,但是示例数据在图片中,因此重现非常耗时:对不起:/