11package main
22
33import (
4+ "encoding/json"
45 "fmt"
56 "io"
67 "log"
@@ -10,25 +11,47 @@ import (
1011)
1112
1213func main () {
14+
1315 jsonFilepaths := getJsonFilePaths ()
1416 fmt .Printf ("file=%v, and the type is %T\n " , jsonFilepaths , jsonFilepaths )
1517
18+ var failure int
19+
1620 for _ , f := range jsonFilepaths {
17- fh , err := os .Open (f )
18- if err != nil {
19- log .Printf ("error: failed to open file for reading: %v\n " , err )
20- os .Exit (1 )
21- }
22- // Remember to close the file!
21+ func () {
22+ fh , err := os .Open (f )
23+ if err != nil {
24+ log .Printf ("error: failed to open file for reading: %v\n " , err )
25+ os .Exit (1 )
26+ }
27+ defer fh .Close ()
28+
29+ js , err := io .ReadAll (fh )
30+ if err != nil {
31+ log .Printf ("error: failed to read file: %v\n " , err )
32+ os .Exit (1 )
33+ }
2334
24- js , err := io .ReadAll (fh )
25- if err != nil {
26- log .Printf ("error: failed to read file: %v\n " , err )
27- os .Exit (1 )
28- }
35+ fmt .Printf (" * Content of file %v : %v\n " , f , string (js ))
2936
30- fmt .Printf (" * Content of file %v : %v\n " , f , string (js ))
37+ var data map [string ]any
38+
39+ if len (js ) < 1 {
40+ fmt .Printf (" * the file %v was empty: " , f )
41+ return
42+ }
43+
44+ err = json .Unmarshal (js , & data )
45+ if err != nil {
46+ log .Printf ("error: for file %v, failed to unmarshal data: %v\n " , f , err )
47+ failure = 1
48+ }
49+ }()
50+
51+ }
3152
53+ if failure != 0 {
54+ os .Exit (failure )
3255 }
3356
3457}
0 commit comments