首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用simplejson转JSON

用simplejson转JSON
EN

Stack Overflow用户
提问于 2014-01-29 13:41:56
回答 1查看 6.1K关注 0票数 3

尝试使用"github.com/bitly/go-simplejson“中的JSON库

代码语言:javascript
复制
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 )

但这似乎确实有效!?试图访问总计字段和标记字段

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-29 14:08:00

你犯了一些错误:

  1. 如果检查JSON响应,就会注意到total字段不是字符串,这就是在访问字段时应该使用MustInt()方法而不是String()的原因。
  2. Printf()方法调用完全错误。您应该传递一个“模板”,然后传递与“占位符”数量相对应的参数。

顺便说一句,我强烈建议你到处检查err != nil,这对你有很大的帮助。

下面是一个工作示例:

代码语言:javascript
复制
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)
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21432848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档