go从文件中读取json字符串并转换
2024-09-01 05:05:37
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的字符串的结构体成员变量需要大写,否则无法解析
最新文章
- ZabbixCPU温度监视-windows2008R2
- LeetCode Factorial Trailing Zeroes
- nmap命令-----基础用法
- 【发问】代表ODBC、Ibatis 发问 Hibernate、Linq、Entity、JPA
- firefly服务器间通信演示
- CSS3 中FLEX快速实现BorderLayout布局
- el表达式判断是否相等
- Linux高性能server规划——多线程编程(在)
- 一个意想不到的Javascript内存泄漏
- c++ fmt 库安装和使用示例
- 【Codeforces Round】 #432 (Div. 2) 题解
- .NET EF框架的安装、及三种开发模式
- 30个mysql千万级大数据SQL查询优化技巧详解
- dubbo-admin管理控制台的安装部署(最简单)
- Django之知识总结
- [转]CENTOS 使用RSYNC+INOTIFY实现文件实时自动同步
- kali linux执行apt-get update失败(数字签名过期)
- python自动化之word文档
- GeoServer之styles定制
- Tr A(矩阵快速幂)