github.com/wangyougui/gf/v2@v2.6.5/encoding/gjson/gjson_z_example_new_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/wangyougui/gf. 6 7 package gjson_test 8 9 import ( 10 "fmt" 11 12 "github.com/wangyougui/gf/v2/encoding/gjson" 13 ) 14 15 func ExampleNew() { 16 jsonContent := `{"name":"john", "score":"100"}` 17 j := gjson.New(jsonContent) 18 fmt.Println(j.Get("name")) 19 fmt.Println(j.Get("score")) 20 21 // Output: 22 // john 23 // 100 24 } 25 26 func ExampleNewWithTag() { 27 type Me struct { 28 Name string `tag:"name"` 29 Score int `tag:"score"` 30 Title string 31 } 32 me := Me{ 33 Name: "john", 34 Score: 100, 35 Title: "engineer", 36 } 37 j := gjson.NewWithTag(me, "tag", true) 38 fmt.Println(j.Get("name")) 39 fmt.Println(j.Get("score")) 40 fmt.Println(j.Get("Title")) 41 42 // Output: 43 // john 44 // 100 45 // engineer 46 } 47 48 func ExampleNewWithOptions() { 49 type Me struct { 50 Name string `tag:"name"` 51 Score int `tag:"score"` 52 Title string 53 } 54 me := Me{ 55 Name: "john", 56 Score: 100, 57 Title: "engineer", 58 } 59 60 j := gjson.NewWithOptions(me, gjson.Options{ 61 Tags: "tag", 62 }) 63 fmt.Println(j.Get("name")) 64 fmt.Println(j.Get("score")) 65 fmt.Println(j.Get("Title")) 66 67 // Output: 68 // john 69 // 100 70 // engineer 71 } 72 73 func ExampleNewWithOptions_UTF8BOM() { 74 jsonContent := `{"name":"john", "score":"100"}` 75 76 content := make([]byte, 3, len(jsonContent)+3) 77 content[0] = 0xEF 78 content[1] = 0xBB 79 content[2] = 0xBF 80 content = append(content, jsonContent...) 81 82 j := gjson.NewWithOptions(content, gjson.Options{ 83 Tags: "tag", 84 }) 85 fmt.Println(j.Get("name")) 86 fmt.Println(j.Get("score")) 87 88 // Output: 89 // john 90 // 100 91 } 92 93 func ExampleNew_Xml() { 94 jsonContent := `<?xml version="1.0" encoding="UTF-8"?><doc><name>john</name><score>100</score></doc>` 95 j := gjson.New(jsonContent) 96 // Note that there's root node in the XML content. 97 fmt.Println(j.Get("doc.name")) 98 fmt.Println(j.Get("doc.score")) 99 // Output: 100 // john 101 // 100 102 } 103 104 func ExampleNew_Struct() { 105 type Me struct { 106 Name string `json:"name"` 107 Score int `json:"score"` 108 } 109 me := Me{ 110 Name: "john", 111 Score: 100, 112 } 113 j := gjson.New(me) 114 fmt.Println(j.Get("name")) 115 fmt.Println(j.Get("score")) 116 // Output: 117 // john 118 // 100 119 }