Skip to Main Content
Go程序设计语言
book

Go程序设计语言

by 艾伦A. A.多诺万, 布莱恩W. 柯尼汉
August 2021
Beginner to intermediate content levelBeginner to intermediate
450 pages
6h 1m
Chinese
Pearson
Content preview from Go程序设计语言

4.5 JSON

JavaScript对象表示法(JSON)是一种发送和接收格式化信息的标准。JSON不是唯一的标准,XML(见7.14节)、ASN.1和Google的Protocol Buffer都是相似的标准,各自有适用的场景。但是因为JSON的简单、可读性强并且支持广泛,所以使用得最多。

Go通过标准库encoding/json、encoding.xml、encoding/asn1和其他的库对这些格式的编码和解码提供了非常好的支持,这些库都拥有相同的API。本节对使用最多的encoding/json做一个简要的描述。

JSON是JavaScript值的Unicode编码,这些值包括字符串、数字、布尔值、数组和对象。JSON是基本数据类型和复合数据类型的一种高效的、可读性强的表示方法。第3章讲解了基础数据类型,本章讲解了复合数据类型——数组、slice、结构体和map。

JSON最基本的类型是数字(以十进制或者科学计数法表示)、布尔值(true或false)和字符串。字符串是用双引号括起来的Unicode代码点的序列,使用反斜杠作为转义字符,通过和Go类似的方式访问成员。当然,JSON里面的\uhhh数字转义得到的是UTF-16编码,而不是Go里面的字符。

这些基础类型可以通过JSON的数组和对象进行组合。JSON的数组是一个有序的元素序列,每个元素之间用逗号分隔,两边使用方括号括起来。JSON的数组用来编码Go里面的数组和slice。JSON的对象是一个从字符串到值的映射,写成name:value对的序列,每个元素之间用逗号分隔,两边使用花括号括起来。JSON的对象用来编码Go里面的map(键为字符串类型)和结构体。例如:

想象一个程序需要收集电影的观看次数并提供推荐。这个程序的Movie类型和典型的元素列表都在下面提供了。(结构体中成员Year和Color后面的字符串字面量是成员的标签,稍后会讲解它。) ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
Go语言编程

Go语言编程

威廉·肯尼迪

Publisher Resources

ISBN: 9787111558422