...
1 package jsoniter
2
3 import (
4 "fmt"
5 "os"
6 "strings"
7 )
8
9 func ExampleMarshal() {
10 type ColorGroup struct {
11 ID int
12 Name string
13 Colors []string
14 }
15 group := ColorGroup{
16 ID: 1,
17 Name: "Reds",
18 Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
19 }
20 b, err := Marshal(group)
21 if err != nil {
22 fmt.Println("error:", err)
23 }
24 os.Stdout.Write(b)
25
26
27 }
28
29 func ExampleUnmarshal() {
30 var jsonBlob = []byte(`[
31 {"Name": "Platypus", "Order": "Monotremata"},
32 {"Name": "Quoll", "Order": "Dasyuromorphia"}
33 ]`)
34 type Animal struct {
35 Name string
36 Order string
37 }
38 var animals []Animal
39 err := Unmarshal(jsonBlob, &animals)
40 if err != nil {
41 fmt.Println("error:", err)
42 }
43 fmt.Printf("%+v", animals)
44
45
46 }
47
48 func ExampleConfigFastest_Marshal() {
49 type ColorGroup struct {
50 ID int
51 Name string
52 Colors []string
53 }
54 group := ColorGroup{
55 ID: 1,
56 Name: "Reds",
57 Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
58 }
59 stream := ConfigFastest.BorrowStream(nil)
60 defer ConfigFastest.ReturnStream(stream)
61 stream.WriteVal(group)
62 if stream.Error != nil {
63 fmt.Println("error:", stream.Error)
64 }
65 os.Stdout.Write(stream.Buffer())
66
67
68 }
69
70 func ExampleConfigFastest_Unmarshal() {
71 var jsonBlob = []byte(`[
72 {"Name": "Platypus", "Order": "Monotremata"},
73 {"Name": "Quoll", "Order": "Dasyuromorphia"}
74 ]`)
75 type Animal struct {
76 Name string
77 Order string
78 }
79 var animals []Animal
80 iter := ConfigFastest.BorrowIterator(jsonBlob)
81 defer ConfigFastest.ReturnIterator(iter)
82 iter.ReadVal(&animals)
83 if iter.Error != nil {
84 fmt.Println("error:", iter.Error)
85 }
86 fmt.Printf("%+v", animals)
87
88
89 }
90
91 func ExampleGet() {
92 val := []byte(`{"ID":1,"Name":"Reds","Colors":["Crimson","Red","Ruby","Maroon"]}`)
93 fmt.Printf(Get(val, "Colors", 0).ToString())
94
95
96 }
97
98 func ExampleMyKey() {
99 hello := MyKey("hello")
100 output, _ := Marshal(map[*MyKey]string{&hello: "world"})
101 fmt.Println(string(output))
102 obj := map[*MyKey]string{}
103 Unmarshal(output, &obj)
104 for k, v := range obj {
105 fmt.Println(*k, v)
106 }
107
108
109
110 }
111
112 type MyKey string
113
114 func (m *MyKey) MarshalText() ([]byte, error) {
115 return []byte(strings.Replace(string(*m), "h", "H", -1)), nil
116 }
117
118 func (m *MyKey) UnmarshalText(text []byte) error {
119 *m = MyKey(text[:3])
120 return nil
121 }
122
View as plain text