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. Escape (BFS + 模拟)

    Problem Description The students of the HEU are maneuvering for their military training. The red arm ...

  2. ZK Watcher 的原理和实现

    什么是 ZK Watcher 基于 ZK 的应用程序的一个常见需求是需要知道 ZK 集合的状态.为了达到这个目的,一种方法是 ZK 客户端定时轮询 ZK 集合,检查系统状态是否发生了变化.然而,轮询并 ...

  3. HashMap源码分析(史上最详细的源码分析)

    HashMap简介 HashMap是开发中使用频率最高的用于映射(键值对 key value)处理的数据结构,我们经常把hashMap数据结构叫做散列链表: ObjectI entry<Key, ...

  4. [Algorithm] 面试题之犄角旮旯 第贰章

    闲下来后,需要讲最近涉及到的算法全部整理一下,有个indice,方便记忆宫殿的查找 MIT的算法课,地球上最好: Design and Analysis of Algorithms 本篇需要重新整理, ...

  5. JS的运动1(从简单到复杂运动,从单一属性到多属性同时进行的运动过程分析)

    js运动原理 运动基础 在js中,让一个元素动起来的最简单的方式,就是点击按钮,让元素移动.下面是一个简单的案例:(下面几个案例的的html和css都是采用这个为例) <!DOCTYPE htm ...

  6. 小型APP系统开发与应用项目实训

    实训项目 :             小型APP系统开发与应用项目实训                           项目成品名称:          果乐多商城               项 ...

  7. android实现emoji输入

    学android也有一段时间, 一直都是自己摸索, 各种上网查资料, 也明白了不能一味去索取有时间也要分享一些自己的心得 . 最近几天都在写关于android emoji输入的小例子,网上有不少源码还 ...

  8. Ajax async属性

    async: 默认是true:异步,false:同步. 其他属性扩展: 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数, ...

  9. Flask基础(14)-->自定义过滤器

    Flask基础(13)-->自定义过滤器 什么是过滤器? 过滤器的本质就是函数.有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化.运算等等,而在模板中是不能直接调用 P ...

  10. 【钢琴伴奏基本形态和伴奏织体】技能 get

    开头重复一句话:做编曲就是设计和声+伴奏织体. ---- --------- --------------- 分解和弦: 半分解和弦: 做法:在旋律的下方演奏一些和弦的音.就能让音乐更加的饱满,拒绝空 ...