[Go 语言社区]服务器读取配置文件只-json数据

package main

// 导入需要的库
import (
    "encoding/json"
    "fmt"
)

// 结构体定义
type Student struct {
    Name    string
    Age     int
    Guake   bool
    Classes []string
    Price   float32
}

// 显示结构体数据,主要是测试和调试的时候需要
func (s *Student) ShowStu() {
    fmt.Println("show Student :")
    fmt.Println("\tName\t:", s.Name)
    fmt.Println("\tAge\t:", s.Age)
    fmt.Println("\tGuake\t:", s.Guake)
    fmt.Println("\tPrice\t:", s.Price)
    fmt.Printf("\tClasses\t: ")
    for _, a := range s.Classes {
        fmt.Printf("%s ", a)
    }
    fmt.Println("")
}

// 主要的函数的调用
func main() {
    st := &Student{
        "Xiao Ming",
        16,
        true,
        []string{"Math", "English", "Chinese"},
        9.99,
    }
    fmt.Println("before JSON encoding :")
    // 打印出结构体的数据的形式
    st.ShowStu()
    // 数据格式打包成josn
    b, err := json.Marshal(st)
    if err != nil {
        fmt.Println("encoding faild")
    } else {
        fmt.Println("encoded data : ")
        fmt.Println(b)
        fmt.Println(string(b))
    }
    // 获取数据的网络格式
    ch := make(chan string, 1)
    go func(c chan string, str string) {
        c <- str
    }(ch, string(b))
    strData := <-ch
    fmt.Println("--------------------------------")

    // 通过josn 转化为结构体格式
    stb := &Student{}
    stb.ShowStu()
    err = json.Unmarshal([]byte(strData), &stb)
    if err != nil {
        fmt.Println("Unmarshal faild")
    } else {
        fmt.Println("Unmarshal success")
        stb.ShowStu()
    }
}

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏九彩拼盘的叨叨叨

那些 CSS 的设计失误(译)

CSS Working Group 写的 Incomplete List of Mistakes in the Design of CSS 。译的不好,请见谅。

881
来自专栏新工科课程建设探讨——以能源与动力工程专业为例

2.2.2 HTML标签简介

HTML(HyperText Mark-up Language)是由HTML标签嵌套和组合的描述性文本,HTML标签可以描述文本(p,div等)、表格(tabl...

1312
来自专栏熊二哥

JQuery快速入门

Write less, do more, I like jQuery. ? ? jQuery是最常用的js库,整体来说非常轻量并易于扩展,对于移动应用可以使用...

20110
来自专栏何俊林

Android View框架总结(四)View布局流程之Measure

View树的measure流程 View的measures时序图 View布局流程之measure View的measure过程 ViewGroup的mea...

2215
来自专栏Android机动车

TextView自定义下划线、点击弹框

github地址:https://github.com/shuaijia/NoteText

1203
来自专栏Android中高级开发

深入分析Android动画(一)

  View动画顾名思义其作用对象为View,包含平移、缩放、旋转、透明,这四类变化分别对应着Animation的子类TranlateAnimation、Sca...

1174
来自专栏happyJared

IDEA快捷键拆解系列(六):Code篇

  以下是关于Code导航项及其每一子项的拆解介绍,其中,加粗部分的选项是博主认为比较重要的。

1412
来自专栏极乐技术社区

『组件』大转盘、刮刮乐、老虎机……

组件 框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。 什么是组件: 组件是视图层的基本组成单元。 组件自带一些功能与微信风格的样...

5696
来自专栏Golang语言社区

Golang的iota问题

通常人们认为iota就是0,其实并非如此。 确切的说,当iota在紧跟着关键字const的第一行出现时,iota为0,在第二行出现时,iota为1,以此类推;当...

39211
来自专栏GIS讲堂

OL4中styleFunction的妙用

越用越觉得styleFunction是一个好东西,爱不释手啊,今天分享一个简单的memo。

1282

扫码关注云+社区

领取腾讯云代金券