1 package main
2
3 import (
4 "encoding/json"
5 "fmt"
6 )
7
8 type Screen struct {
9 Size float32 //屏幕尺寸
10 ResX, ResY int //水平和垂直分辨率
11 }
12
13 type Battery struct {
14 Capacity int //电池容量
15 }
16
17 func getJsonData() []byte {
18 raw := &struct {
19 Screen
20 Battery
21 HasTouchID bool
22 }{
23 Screen: Screen{
24 Size: 5.5,
25 ResX: 1920,
26 ResY: 1080,
27 },
28 Battery: Battery{
29 2910,
30 },
31 HasTouchID: true,
32 }
33 jsonData, _ := json.Marshal(raw)
34 return jsonData
35 }
36 func main() {
37 jsonData := getJsonData()
38 fmt.Printf(string(jsonData))
39
40 screenAndTouch := struct {
41 Screen
42 HasTouchID bool
43 }{}
44
45 json.Unmarshal(jsonData, &screenAndTouch)
46 fmt.Printf("%+v\n", screenAndTouch)
47 }