-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjson_in_go.go
45 lines (38 loc) · 1018 Bytes
/
json_in_go.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type Book struct {
Title string
Author string
}
func main() {
// Single struct object
book := Book{Title: "Harry Potter", Author: "J.K. Rowling"}
b, _ := json.Marshal(book)
err := ioutil.WriteFile("demo.json", b, 0644)
CheckError(err)
fileData, err := ioutil.ReadFile("demo.json")
var bookParsed Book
err = json.Unmarshal(fileData, &bookParsed)
CheckError(err)
fmt.Printf("%+v", bookParsed)
// Array of struct objects
books := []Book{{Title: "Harry Potter", Author: "J.K. Rowling"}, {Title: "Wings of Fire", Author: "A P J Abdul Kalam"},
{Title: "Harry Potter", Author: "J.K. Rowling"}}
b, _ = json.Marshal(books)
err = ioutil.WriteFile("demo_array.json", b, 0644)
CheckError(err)
fileData, err = ioutil.ReadFile("demo_array.json")
var bookParsedArray []Book
err = json.Unmarshal(fileData, &bookParsedArray)
CheckError(err)
fmt.Printf("%+v", bookParsedArray)
}
func CheckError(err error) {
if err != nil {
panic(err)
}
}