加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang解析json格式数据

发布时间:2020-12-16 18:21:51 所属栏目:大数据 来源:网络整理
导读:json简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 常见样式1 { " id ": 1 ," name ": "bill" } 这个json格式数据中,包含了2个字段,一个是id字段,值是1;第二个字段是name字段,其值是bill。这是一种基础的json格式数据。 常见样

json简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

  • 常见样式1
{
    "id": 1,"name": "bill" }

这个json格式数据中,包含了2个字段,一个是id字段,值是1;第二个字段是name字段,其值是bill。这是一种基础的json格式数据。

  • 常见样式2
[
    {
        "id": 1234,"name": "jack" },{
        "id": 4567,"name": "tom" }
]

这中形式的json可以用来表述数组。可以将数据库中的多行转换成数组形式的json。每一行一个大括号,行与行之间用逗号分隔。整个数据用中括号括起来。这样用来表述一个json格式的数组。

  • 常见样式3
{
    "version": "v1.0.1","data": [ { "id": 999,"name": "lucy" },{ "id": 888,"name": "Jordan" } ],"jj": "god" }

json可以表达丰富多彩的数据结构。json格式通常可以理解为key/value结构。value值又可以表示成字符串,数字,也可以表示成子json对象。当value成json对象时,实现了嵌套json的数据结构。

下边来使用golang解析嵌套的json格式数据。示例如下:

package main

import (
    "encoding/json"
    "fmt"
)

type data struct {
    Id  string
    Val string
}

type user struct {
    Id   string
    Name string
    Age  string
}
type tjson struct {
    D       data
    Version string
    U       user
}

func main() {
    js := tjson{
        D:       data{Id: "text",Val: "hello world"},Version: "0.1",U:       user{Id: "bill",Name: "bill gates",Age: "18"},}
    ojs,err := json.Marshal(js)
    fmt.Println(string(ojs),err)
    var mjs = `{"D":{"Id":"text","Val":"hello world"},"Version":"0.1","U":{"Id":"bill","Name":"bill gates","Age":"18"}}`
    var ret tjson
    err = json.Unmarshal([]byte(mjs),&ret)
    fmt.Println(ret,ret.D.Id,ret.U.Name,err)
}

演示结果如下:

{
    "D": { "Id": "text","Val": "hello world" },"Version": "0.1","U": { "Id": "bill","Name": "bill gates","Age": "18" } }

{{text hello world} 0.1 {bill bill gates 18}} text bill gates

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读