type
status
date
slug
summary
tags
category
icon
password
AI summary

Go语言之JSON

什么是JSON

JSON (JavaScript Object Notation) 是一种较为清晰易懂的数据存储和交互格式,常用于服务器和客户端之间的数据交互。
  • 格式例子:
Go 语言提供了便捷的方式来对JSON数据进行解析和生成。

🌟 根本实现

📦 安装包

在开始实现JSON操作之前,需要安装并引入 Go 自带的 encoding/json 包:

🔍 JSON解析 (Unmarshal)

将JSON字符串解析成Go实体:

示例

解释

  1. json.Unmarshal: 将JSON数据转换成Go实体。
  1. 🛠️ 标签例示: 通过编码标签(如 json:"name")指定字段与JSON字段的对应关系。

✨ JSON生成 (Marshal)

将Go实体生成JSON字符串:

示例

解释

  1. json.Marshal: 将Go实体转换为JSON格式。
  1. 📜 返回值: 返回一个字节字符串,可以通过string(jsonData)进行转化。

🔧 处理复杂数据

对于不确定字段的JSON,可以使用 mapinterface{} 实现。

示例


✨ 自定义解析时间字段

自定义MarshalJSON和UnmarshalJSON方法

🧐 常见问题和注意事项

  1. ❗ 字段匹配失败: 确保编码标签和JSON字段名匹配。
  1. ⚠️ 处理字段空值: Go 中的空值将生成JSON的空值(如 "")。
  1. 🔡 字段的大小写: 默认数据匹配为大写字段,如果需要小写,需加标签。

📝 作业

  1. 🛠️ 实现一个简单的课程库系统,将课程信息存储为JSON,并解析和显示。
  1. 📊 进阶作业:使用自定义字段格式,将日期实现为特定格式的JSON字符串。
 
【置顶】Go语言学习路线泛型