尝试使用"github.com/bitly/go-simplejson“中的JSON库
url = "http://api.stackoverflow.com/1.1/tags?pagesize=100&page=1"
res, err := http.Get(url)
body, err := ioutil.ReadAll(res.Body)
fmt.Printf("%s\n", string(body)) //WORKS
js, err := simplejson.NewJson(body)
total,_ := js.Get("total").String()
fmt.Printf("Total:%s"+total )但这似乎确实有效!?试图访问总计字段和标记字段
发布于 2014-01-29 14:08:00
你犯了一些错误:
total字段不是字符串,这就是在访问字段时应该使用MustInt()方法而不是String()的原因。Printf()方法调用完全错误。您应该传递一个“模板”,然后传递与“占位符”数量相对应的参数。顺便说一句,我强烈建议你到处检查err != nil,这对你有很大的帮助。
下面是一个工作示例:
package main
import (
"fmt"
"github.com/bitly/go-simplejson"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://api.stackoverflow.com/1.1/tags?pagesize=100&page=1"
res, err := http.Get(url)
if err != nil {
log.Fatalln(err)
}
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatalln(err)
}
// fmt.Printf("%s\n", string(body))
js, err := simplejson.NewJson(body)
if err != nil {
log.Fatalln(err)
}
total := js.Get("total").MustInt()
if err != nil {
log.Fatalln(err)
}
fmt.Printf("Total:%s", total)
}https://stackoverflow.com/questions/21432848
复制相似问题