go从文件中读取json字符串并转换

将要读取的文件的一部分

[
{
"children": [
{
"children": [
{
"code": 110118,
"name": "密云区"
},
{
"code": 110119,
"name": "延庆区"
}
],
"code": 110000,
"name": "北京市"
}
],
"code": "110000",
"name": "北京市(京)"
},
{
"children": [
{
"children": [ {
"code": 120118,
"name": "静海区"
},
{
"code": 120119,
"name": "蓟州区"
}
],
"code": 120000,
"name": "天津市"
}
],
"code": "120000",
"name": "天津市(津)"
},
{
"children": [
{
"code": 820000,
"name": "澳门特别行政区(澳)"
}
],
"code": "820000",
"name": "澳门特别行政区(澳)"
},
{
"code": "710000",
"name": "台湾省(台)"
}
]
package main
import (
"bufio"
"fmt"
"io"
"os"
"encoding/json"
) type County struct{
Code int
Name string
}
type City struct {
Children []County
Code int
Name string
}
type Province struct{
Children []City
Code string
Name string
} func main() {
//打开文件
inputFile, inputError := os.Open("xzqh.json")
if inputError != nil {
return
}
defer inputFile.Close() //按行读取文件
var s string
inputReader := bufio.NewReader(inputFile)
for {
inputString, readerError := inputReader.ReadString('\n')
if readerError == io.EOF {
break
}
s = s + inputString
}
fmt.Printf("all: \n%s", s) //json字符串转化为结构体
fmt.Println("-------------------------------------------------")
var province []Province
if err := json.Unmarshal([]byte(s), &province); err == nil {
fmt.Println(province)
for i:=0;i<len(province);i++ {
fmt.Println(province[i].Name);
}
}else{
fmt.Println("转换失败")
}
}

走过的坑:

1.接受json的字符串的结构体成员变量需要大写,否则无法解析

最新文章

  1. ZabbixCPU温度监视-windows2008R2
  2. LeetCode Factorial Trailing Zeroes
  3. nmap命令-----基础用法
  4. 【发问】代表ODBC、Ibatis 发问 Hibernate、Linq、Entity、JPA
  5. firefly服务器间通信演示
  6. CSS3 中FLEX快速实现BorderLayout布局
  7. el表达式判断是否相等
  8. Linux高性能server规划——多线程编程(在)
  9. 一个意想不到的Javascript内存泄漏
  10. c++ fmt 库安装和使用示例
  11. 【Codeforces Round】 #432 (Div. 2) 题解
  12. .NET EF框架的安装、及三种开发模式
  13. 30个mysql千万级大数据SQL查询优化技巧详解
  14. dubbo-admin管理控制台的安装部署(最简单)
  15. Django之知识总结
  16. [转]CENTOS 使用RSYNC+INOTIFY实现文件实时自动同步
  17. kali linux执行apt-get update失败(数字签名过期)
  18. python自动化之word文档
  19. GeoServer之styles定制
  20. Tr A(矩阵快速幂)

热门文章

  1. 【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
  2. 【iOS】获取应用程序本地路径
  3. 你可能不知道的Docker资源限制
  4. QScintilla下载与编译
  5. FB的新专利竟要监看使用者的脸
  6. EasyUI combobox下拉列表实现搜索过滤(模糊匹配)
  7. H3C软件开发笔试面试总结
  8. Java内存模型的基础
  9. [Chat]实战:仿网易云课堂微信小程序开发核心技术剖析和经验分享
  10. WPF控件截图