golang生成JSON及解析JSON

Python011

golang生成JSON及解析JSON,第1张

一、JSON解析到结构体

在介绍这部分之前先简要介绍一下Json语法

JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中

数据由逗号分隔

大括号保存对象

中括号保存数组

1.JSON名称/值对

2.JSON值

可以是:

JSON数据

JSON 数字可以是整型或者浮点型

JSON对象

JSON 对象在大括号({})中书写:

对象可以包含多个名称/值对:

JSON数组

JSON 数组在中括号中书写:

数组可包含多个对象:

JSON布尔值

二、JSON转map

输出结果:

三、生成JSON

本文来自php中文网的 golang教程 栏目: https://www.php.cn/be/go/

把map转成json的步骤:

1、需要一些jar包:json-lib-2.4-jdk15.jar、ezmorph-1.0.6.jar、commons-logging.jar、commons-lang.jar、commons-collections.jar、commons-beanutils.jar。

2、把Map转换成json, 要使用jsonObject对象:

Map<String, Object>map = new HashMap<String, Object>()

map.put("userId", 1001)

map.put("userName", "张三")

map.put("userSex", "男")

JSONObject jsonObject = JSONObject.fromObject(map)

System.out.println(jsonObject)

完整的一条json语句中,字段都为字符串类型,值为基本数据类型:整形、布尔型、字符串等

在解析json时,通常要用到encoding/json这个包

json.Unmarshal()方法用作将一个json类型的字节流,序列化成指定的形式,可以为map,也可以为自定义的结构体,需要注意的是,希望被转换的格式需要以指针类型传入

运行结果如下

将map或者struct打包成json,用的是json中的marshal方法,返回的是一个字节数组和一个错误类型

打印结果