您的位置:首页 > Web前端 > JavaScript

golang解析json格式数据

2016-12-14 22:55 399 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  golang json