Chapter 9. JSON Recipes

9.0 Introduction

JavaScript Object Notation (JSON) is a lightweight data-interchange text format. It’s meant to be read by humans but also easily read by machines and is based on a subset of JavaScript. JSON was originally defined by Douglas Crockford but is currently described by RFC 7159, as well as ECMA-404. JSON is used in REST-based web services, although they don’t necessarily need to accept or return JSON data.

JSON is popular with RESTful web services but it’s also frequently used for configuration. Creating and consuming JSON is commonplace in many web applications, from getting data from a web service to authenticating your web application through a third-party authentication service to controlling other services.

Go supports JSON in the standard library using the encoding/json package.

9.1 Parsing JSON Data Byte Arrays to Structs

Problem

You want to read JSON data byte arrays and store them into structs.

Solution

Create structs to contain the JSON data and then use Unmarshal in the encoding/json package to unmarshal the data into the structs.

Discussion

Parsing JSON with the encoding/json package is straightforward:

  1. Create structs to contain the JSON data.

  2. Unmarshal the JSON string into the structs.

Here’s a sample JSON file, containing data on the Star Wars character, Luke Skywalker, taken from SWAPI, the Star Wars API. The data has been taken and stored in a file named skywalker.json:

{
	"name": "Luke Skywalker",
	"height": 

Get Go Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.