golang的json操作[转]
package main import ( "encoding/json" "fmt" "os" ) type ConfigStruct struct { Host string `json: "host" ` Port int `json: "port" ` AnalyticsFile string `json: "analytics_file" ` StaticFileVersion int `json: "static_file_version" ` StaticDir string `json: "static_dir" ` TemplatesDir string `json: "templates_dir" ` SerTcpSocketHost string `json: "serTcpSocketHost" ` SerTcpSocketPort int `json: "serTcpSocketPort" ` Fruits []string `json: "fruits" ` } type Other struct { SerTcpSocketHost string `json: "serTcpSocketHost" ` SerTcpSocketPort int `json: "serTcpSocketPort" ` Fruits []string `json: "fruits" ` } func main() { jsonStr := `{ "host" : "http://localhost:9090" , "port" : 9090, "analytics_file" : "" , "static_file_version" : 1, "static_dir" : "E:/Project/goTest/src/" , "templates_dir" : "E:/Project/goTest/src/templates/" , "serTcpSocketHost" : ":12340" , "serTcpSocketPort" : 12340, "fruits" : [ "apple" , "peach" ]}` //json str 转map var dat map[string]interface{} if err := json.Unmarshal([]byte(jsonStr), &dat); err == nil { fmt.Println( "==============json str 转map=======================" ) fmt.Println(dat) fmt.Println(dat[ "host" ]) } //json str 转struct var config ConfigStruct if err := json.Unmarshal([]byte(jsonStr), &config); err == nil { fmt.Println( "================json str 转struct==" ) fmt.Println(config) fmt.Println(config.Host) } //json str 转struct(部份字段) var part Other if err := json.Unmarshal([]byte(jsonStr), &part); err == nil { fmt.Println( "================json str 转struct==" ) fmt.Println(part) fmt.Println(part.SerTcpSocketPort) } //struct 到json str if b, err := json.Marshal(config); err == nil { fmt.Println( "================struct 到json str==" ) fmt.Println(string(b)) } //map 到json str fmt.Println( "================map 到json str=====================" ) enc := json.NewEncoder(os.Stdout) enc.Encode(dat) //array 到 json str arr := []string{ "hello" , "apple" , "python" , "golang" , "base" , "peach" , "pear" } lang, err := json.Marshal(arr) if err == nil { fmt.Println( "================array 到 json str==" ) fmt.Println(string(lang)) } //json 到 []string var wo []string if err := json.Unmarshal(lang, &wo); err == nil { fmt.Println( "================json 到 []string==" ) fmt.Println(wo) } } |
from:http://my.oschina.net/golang/blog/210012
golang的json操作[转]的更多相关文章
- golang的json操作
package main import ( "encoding/json" "fmt" "os" ) type ConfigStruct s ...
- 48 【golang】json的效率
本文将主要做如下几方面的测试: 1,构造一个[100]struct的数组,然后来测试它的json编码后的字符串 或者([]byte),首先关心它的功能是否正常: 2,在很早之前,我们在使用golang ...
- Golang 处理 Json(二):解码
golang 编码 json 还比较简单,而解析 json 则非常蛋疼.不像 PHP 一句 json_decode() 就能搞定.之前项目开发中,为了兼容不同客户端的需求,请求的 content-ty ...
- Golang的json包
encoding/json encoding/json是官方提供的标准json, 实现RFC 7159中定义的JSON编码和解码.使用的时候需要预定义struct,原理是通过reflection和in ...
- Golang解析json的几种方法
Golang解析json的几种方法 概要 使用Golang调用其它平台API接口时总会被多层的json串给恶心到,我记录一下自己解析json的几种方法. 一.自带的json包 func JsonUnm ...
- Json操作(DynamicJson)
Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...
- ASP.NET 里的 JSON操作
最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法.... 一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法 1. 使用Ja ...
- Newtonsoft.Json 操作 JSON 字符串
Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSeriali ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
随机推荐
- 一个取消事件的简单js例子(事件冒泡与取消默认行为)
先上代码: <div id='outer' onclick='alert("我是outer")'> <div id="middle" oncl ...
- How to Pronounce the word BECAUSE
How to Pronounce the word BECAUSE Share Tweet Share Tagged With: BECAUSE Reduction Study the BECAUSE ...
- frame标签使用
今天在做onebyone作业的时候,为了使自己的页面更加美观,我便使用了frame框架,百度了他的用法,总结如下 frame,是网页开发必须掌握的知识.例如后台架构.局部刷新,页面分割,都是frame ...
- hive sql split 分隔符
Hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 secon ...
- 网站连接数据库连接不上原因是ip地址与端口号格式不对
192.168.1.1:8080这样连接一直出错, 后来改为192.168.1.1,8080就可以了 原因是格式不对,把冒号给为逗号就可以了
- 第七章 二叉搜索树(c)平衡与等价
- 45. Jump Game II (Array; Two-Pointers,Greedy)
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- c语言指针数组和结构体的指针
指向数组的指针,先初始化一个数组,使用传统方式遍历 void main() { ] = { ,,,, }; ; i < ; i++) { printf("%d,%x\n", ...
- jDeveloper运行慢
最近在使用 Jdeveloper 10.1.3.3 版本时发现速度奇慢无比,后经Google,发现如下解决方案:在 jdev.conf 文件的末尾加上如下两行,速度即可得到显著的提高. AddVMOp ...
- 欲哭无泪的p-value = 0.051 | 做几次重复能得到较低的p-value
欲哭无泪的p-value = 0.051 | 做几次重复能得到较低的p-value 已有 1469 次阅读 2017-12-15 14:12 |个人分类:RNA-seq|系统分类:科普集锦|关键词:R ...