获取到的数据,怎么用 json 解析,自己写的,但是解析报错了

April · 2017-06-30 04:10:01 · 2781 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-06-30 04:10:01 的主题,其中的信息可能已经有所发展或是发生改变。

数据DEMO:腾讯位置服务 数据是 list 接口,页面下方有调用示例,可以点击打开新页面,看到调用接口时获得的数据结构

应该是自定义 struct 错误,像 DEMO 中的数据,该如何自定义 struct ?

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

type tude struct {
    lat float32
    lng float32
}

type region struct {
    id       string
    name     string
    fullname string
    location tude
    cidx     []int
    pinyin   []string
}

type response struct {
    status  int
    message string
    result  []region
}


func main() {
    resp, err := http.Get("http://apis.map.qq.com/ws/district/v1/list?key=")
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }

    var rg response
    json.Unmarshal(body, &rg)
    fmt.Println(rg)
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2781 次点击  
加入收藏 微博
5 回复  |  直到 2017-06-30 06:23:04
abin
abin · #1 · 8年之前

结构体字段需要首字母大写才可以导出,不然解析不到数据的

April
April · #2 · 8年之前
abinabin #1 回复

结构体字段需要首字母大写才可以导出,不然解析不到数据的

谢谢回复! 是的。但是腾讯的接口返回的 json,并没有首字母大写,这种情况下,要怎么解析呢?

JoneWeng
JoneWeng · #3 · 8年之前

type tude struct{ Lat float32 `json:"lat"` }

April
April · #4 · 8年之前
JoneWengJoneWeng #3 回复

type tude struct{ Lat float32 \`json:"lat"\` }

谢谢回复! struct 是需要首字母大写的 但是从腾讯的接口拿到的数据,json 中的全部都是小写,这种 json 数据,该如何解析?

April
April · #5 · 8年之前
JoneWengJoneWeng #3 回复

type tude struct{ Lat float32 \`json:"lat"\` }

我好想明白你的意思了,谢谢!

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传