golang json

package main

import (
	"encoding/json"
	"fmt"
	"os"
)

type ConfigStruct struct {
	Expires_in     string `json:"expires_in"`
	Refresh_token  string `json:"refresh_token"`
	Access_token   string `json:"access_token "`
	Session_secret string `json:"session_secret "`
	Scope          string `json:"scope "`
	Session_key    string `json:"session_key "`
}

func main() {
	jsonStr := `{expires_in": 2592000,	"refresh_token": "22.1e1285e0ab8cb8e4453d31cb53774369.315360000.1756022822.2605827041 - 6701125 ","access_token ":"21.9 ab5cd9698424e9f56e0a8488aabd9f0.2592000.1443254822.2605827041-6701125 ","session_secret ":"9985 f4f820286dae4c532fbfb111dc91 ", "session_key ":"9 mnRfVsV + 0 JrbIB15 + MNzaUm3YyLsqOrRWvBODzwG3KK5RaRGMlLx + smjfkMLmrwlvItGhDln9OxrNnrjJZ3yIUTZ2K0zkJkEA == ","scope ":"basic"}`

	// to map
	var data map[string]interface{}
	if err := json.Unmarshal([]byte(jsonStr), &data); err == nil {
		fmt.Println(data)
	}

	//json to struct
	var config ConfigStruct
	if err := json.Unmarshal([]byte(jsonStr), &config); err == nil {
		fmt.Println(config)
		fmt.Println(config.Access_token)
	}

	//struct to jsonstr
	if b, err := json.Marshal(config); err == nil {
		fmt.Println(string(b))
	}

	//map to jsonstr
	enc := json.NewEncoder(os.Stdout)
	enc.Encode(data)

	//array to jsonstr
	arr := []string{"c", "c++", "java", "python", "javaScript", "nodejs", "golang"}
	lang, err := json.Marshal(arr)
	if err == nil {
		fmt.Println(string(lang))
	}

	//json to []string
	var wo []string
	if err := json.Unmarshal(lang, &wo); err == nil {
		fmt.Println(wo)
	}
}
时间: 2024-10-05 05:07:56

golang json的相关文章

golang json处理struct未导出成员

我们用golang的json来marshal一个结构体的时候,结构体的未导出的成员将无法被json访问,也就是不会出现json编码的结果里(也就是小写的成员没法导出) 这个是由于技术的上问题引起的:golang的结构体里的成员的名字如果以小写字母开头,那么其他的包是无法访问的,也就是json无法访问我们的结构体里小写字母开头的成员 这个可以有两种方法解决 1. struct的成员用大写开头,然后加tag 2. 实现json.Marshaler接口 第一种方法比较常见这儿就不详细展开了 第二种方法

golang json处理

序列化: 1)简单的数据结构: package main import ( "encoding/json" "fmt" "reflect" ) type School struct { Name string `json:"name"` Location string `json:"location"` } func main() { school := School{ Name: "某某学校&q

golang json操作

ackage main import ( "encoding/json" "fmt" "os" ) type ConfigStruct struct { Host string `json:"host"` Port int `json:"port"` AnalyticsFile string `json:"analytics_file"` StaticFileVersion int `j

golang JSON webservice - nginx load balance

func main() { http.HandleFunc("/api", apiHandler) http.HandleFunc("/query/main", mainHandler) http.HandleFunc("/query/show", showHandler) http.HandleFunc("/", mainHandler) http.ListenAndServe(":8081", nil)

再测Golang JSON类库

写项目一直需要进行序列化,听到了,也看到了很多同学老师对各个golang的json库进行测评.那本人为什么还要继续进行这一次测评呢?因为实践过的知识最有说服力,也是属于自己的,我也希望看到本博文的同学老师可以修改和执行测评的代码执行一遍,我相信会有不一定的体会.本次测评我选择了类库有: 类库 序号 类库 地址 备注 1 encoding/json Golan 2 easyjson github.com/mailru/easyjson 3 ffjson github.com/mailru/easy

golang json 编码解码

golang  "encoding/json"包实现了json对象的编解码 一.编码 func Marshal(v interface{}) ([]byte, error) Marshal函数使用下面的基于类型的默认编码格式: 布尔类型编码为json布尔类型. 浮点数.整数和Number类型的值编码为json数字类型. 字符串编码为json字符串.角括号"<"和">"会转义为"\u003c"和"\u003

golang json用法讲解

简介 json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好.但是Go语言是个强类型语言,对格式要求极其严格而JSON格式虽然也有类型,但是并不稳定,Go语言在解析来源为非强类型语言时比如PHP等序列化的JSON时,经常遇到一些问题诸如字段类型变化导致无法正常解析的情况,导致服务不稳定.所以本篇的主要目的 就是挖掘Golang解析json的绝大部分能力 比较优雅的解决解析json时存在的各种问题 深入一下Go

Golang ---json解析

golang官方为我们提供了标准的json解析库–encoding/json,大部分情况下,使用它已经够用了.不过这个解析包有个很大的问题–性能.它不够快,如果我们开发高性能.高并发的网络服务就无法满足,这时就需要高性能的json解析库,目前性能比较高的有json-iterator和easyjson. 现在我们需要引进一个高性能的json解析库,这里以json-iterator为例,但是我们全部换掉又不放心,所以可以先小范围的测试下,这时候我们就需要两个解析库并存,那么这时候我们如何选择我们需要

golang json解析之大小写

package main import ( "encoding/json" "fmt" _ "time" ) type Header struct { FileName  string Host      string Offset    string Timestamp string } type JsonData struct { header string `json:"xx"` Body   string `json: