package main

import (
"encoding/json"
"fmt"
) /*
{
"company":"itcast"
"":[
"go"
"c++"
],
"isok":"ok"
"price":"666"
}
*/
//成员变量名首字母必须大写
type IT struct {
Company string `json:"company"` //变为小写
Subject []string
Isok bool `json:",string"`
Price float32
} type IT2 struct {
Company string `json:"company"`
Subject []string `json:"subject"`
Isok bool `json:"isok"`
Price float32 `json:"price"`
} func main() {
s := IT{"itcast", []string{"go", "c++"}, true, } buf, err := json.Marshal(s)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(buf))
//{"Company":"itcast","Subject":["go","c++"],"Isok":true,"Price":666} //格式化编码
buf2, err := json.MarshalIndent(s, "", " ")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(buf2)) //通过Map生成json
m := make(map[string]interface{}, )
m["compary"] = "itcast"
m["subjects"] = []string{"go", "c++"}
m["Isok"] = true
m["price"] = result, err2 := json.Marshal(m)
if err2 != nil {
return
}
fmt.Println(string(result)) //json 解析到 结构体
jsonbuf := `{"Isok":true,"compary":"itcast","price":,"subjects":["go","c++"]}` var tmp IT2
err3 := json.Unmarshal([]byte(jsonbuf), &tmp)
if err3 != nil {
fmt.Println(err3)
return
}
fmt.Println(tmp) //json 解析到map
m2 := make(map[string]interface{}, )
err4 := json.Unmarshal([]byte(jsonbuf), &m2)
if err4 != nil {
fmt.Println(err4)
}
fmt.Println("map = ", m2) //取元素
for key, value := range m {
fmt.Println(key, value)
switch data := value.(type) {
case string:
fmt.Println(data)
case int:
fmt.Println(data)
}
}
}

go-json类的更多相关文章

  1. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

  2. ecshop json类的使用

    ecshop中有2个地方使用了json,一个是cls_json.php文件,一个是transport.js文件. cls_json 封装了json类,可以调用里面的encode的方法,根据参数不同,进 ...

  3. php递归json类实例代码

    这篇文章主要介绍了php递归json类的实现方法,可以实现对索引数组及数字数组的解析,进而实现递归数组返回json字符串的功能.具体实现代码如下: <?php /* * @ anthor:QD ...

  4. C#代码 json类

    using System; using System.Collections.Generic; using System.Collections; using System.Text; using S ...

  5. C# 转换Json类

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.R ...

  6. Visual Studio自动生成XML类和JSON类

    Visual Studio 2013及以上版本提供了一个非常实用的功能.可以根据xml文档或json文档自动生成类.有了这个工具反序列化时就不用再手动写类并且实现了强类型操作. 步骤 1. 准备一份j ...

  7. Delphi 10.2 Tokyo新增JSON类学习——TJsonSerializer

    Delphi 10.3.2 for windows 7 编译通过,源码下载地址: Tokyo 10.2新增类,效率更高更快 TJsonSerializer 需要引用单元:System.JSON.Ser ...

  8. 【Mysql】Mysql Json类型或Text类型可以建索引吗?

    一.JSON类型 答案是不可以 为Json类型建索引会报错 mysql)); ERROR (): JSON column 'card_pay_data' cannot be used in key s ...

  9. 【JSON类】使用说明

    理解键名路径 键名路径(keyPath)用于定位json的键,比如:{book: {title:”中国人”} },键名路径 book.title 表定位到book下的title键. 对于值是数组类型的 ...

  10. C# 在知道对象时编译json 而不调用json类

    StringBuilder sb = new StringBuilder();            sb.Append('[');                       foreach (va ...

随机推荐

  1. yolo进化史之yolov3

    yolov3的论文写的比较简略,不看yolov1,yolov2很难直接看懂. 建议先看v1,v2论文. yolov3主要做了几点改进 改进了特征提取部分的网络结构 多尺度预测 分类由softmax改为 ...

  2. MySQL实现Oracle rank()排序

    一.Oracle写法介绍 MySQL5.7版本没有提供类似Oracle的分析函数,比如开窗函数over(...),oracle开窗函数over(...)使用的话一般是和order.partition ...

  3. .NET Conf 2019日程(北京时间)

    一年一度的 .NET Conf马上就要开始了,我将日程简易的翻译了一下,并且时间全部转换为北京时间,以方便国内.NETer. 日程 第1天 (北京时间9月24日) .NET Conf 2019 基调 ...

  4. 手把手教你搭建Jenkins实现自动化部署Jar

    centeros7 安装配置环境jdk1.8 1.先卸载centeros自带jdk rpm -qa | grep openjdk 查询出来的自带的openjdk 2.删除 rpm -e --nodep ...

  5. 微信小程序中的tabBar设置

    我们先来看一份图,这个设置在官方文档中已经写得很清楚了,我只是做一个总结 注:我写注释是为了方便说明,在小程序中的json文件中是不能用注释的 这个tabBar属于全局属性,因此就在全局配置文件app ...

  6. 新手学习FFmpeg - 调用API完成视频的读取和输出

    在写了几个avfilter之后,原本以为对ffmpeg应该算是入门了. 结果今天想对一个视频文件进行转码操作,才发现基本的视频读取,输出都搞不定. 痛定思痛,仔细研究了一下ffmpeg提供的examp ...

  7. 安装vue开发环境

    每次搜索vue开发环境安装时,总是有很多种版本,虽然都能安装完成,但还是整理下自己觉得比较好的版本吧 1.首先安装nodeJs以及也把git安装好(反正开发也是需要git),安装完成后执行 node ...

  8. Sentinel Core流程分析

     上次介绍了Sentinel的基本概念,并在文章的最后介绍了基本的用法.这次将对用法中的主要流程和实现做说明,该部分主要涉及到源码中的sentinel-core模块. 1.token获取   如上为t ...

  9. Spring MVC-从零开始-@ResponseBody(未完待续)

    Spring MVC-从零开始-@ResponseBody(未完待续)

  10. java8 运算语法集

    1.分组并进行求和组合运算 示例主要代码: List<String> items = Arrays.asList("apple", "apple", ...