github.com/gogf/gf@v1.16.9/encoding/gjson/gjson_api_encoding.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/gogf/gf. 6 7 package gjson 8 9 import ( 10 "github.com/gogf/gf/encoding/gini" 11 "github.com/gogf/gf/encoding/gtoml" 12 "github.com/gogf/gf/encoding/gxml" 13 "github.com/gogf/gf/encoding/gyaml" 14 "github.com/gogf/gf/internal/json" 15 ) 16 17 // ======================================================================== 18 // JSON 19 // ======================================================================== 20 21 func (j *Json) ToJson() ([]byte, error) { 22 j.mu.RLock() 23 defer j.mu.RUnlock() 24 return Encode(*(j.p)) 25 } 26 27 func (j *Json) ToJsonString() (string, error) { 28 b, e := j.ToJson() 29 return string(b), e 30 } 31 32 func (j *Json) ToJsonIndent() ([]byte, error) { 33 j.mu.RLock() 34 defer j.mu.RUnlock() 35 return json.MarshalIndent(*(j.p), "", "\t") 36 } 37 38 func (j *Json) ToJsonIndentString() (string, error) { 39 b, e := j.ToJsonIndent() 40 return string(b), e 41 } 42 43 func (j *Json) MustToJson() []byte { 44 result, err := j.ToJson() 45 if err != nil { 46 panic(err) 47 } 48 return result 49 } 50 51 func (j *Json) MustToJsonString() string { 52 return string(j.MustToJson()) 53 } 54 55 func (j *Json) MustToJsonIndent() []byte { 56 result, err := j.ToJsonIndent() 57 if err != nil { 58 panic(err) 59 } 60 return result 61 } 62 63 func (j *Json) MustToJsonIndentString() string { 64 return string(j.MustToJsonIndent()) 65 } 66 67 // ======================================================================== 68 // XML 69 // ======================================================================== 70 71 func (j *Json) ToXml(rootTag ...string) ([]byte, error) { 72 return gxml.Encode(j.Map(), rootTag...) 73 } 74 75 func (j *Json) ToXmlString(rootTag ...string) (string, error) { 76 b, e := j.ToXml(rootTag...) 77 return string(b), e 78 } 79 80 func (j *Json) ToXmlIndent(rootTag ...string) ([]byte, error) { 81 return gxml.EncodeWithIndent(j.Map(), rootTag...) 82 } 83 84 func (j *Json) ToXmlIndentString(rootTag ...string) (string, error) { 85 b, e := j.ToXmlIndent(rootTag...) 86 return string(b), e 87 } 88 89 func (j *Json) MustToXml(rootTag ...string) []byte { 90 result, err := j.ToXml(rootTag...) 91 if err != nil { 92 panic(err) 93 } 94 return result 95 } 96 97 func (j *Json) MustToXmlString(rootTag ...string) string { 98 return string(j.MustToXml(rootTag...)) 99 } 100 101 func (j *Json) MustToXmlIndent(rootTag ...string) []byte { 102 result, err := j.ToXmlIndent(rootTag...) 103 if err != nil { 104 panic(err) 105 } 106 return result 107 } 108 109 func (j *Json) MustToXmlIndentString(rootTag ...string) string { 110 return string(j.MustToXmlIndent(rootTag...)) 111 } 112 113 // ======================================================================== 114 // YAML 115 // ======================================================================== 116 117 func (j *Json) ToYaml() ([]byte, error) { 118 j.mu.RLock() 119 defer j.mu.RUnlock() 120 return gyaml.Encode(*(j.p)) 121 } 122 123 func (j *Json) ToYamlString() (string, error) { 124 b, e := j.ToYaml() 125 return string(b), e 126 } 127 128 func (j *Json) MustToYaml() []byte { 129 result, err := j.ToYaml() 130 if err != nil { 131 panic(err) 132 } 133 return result 134 } 135 136 func (j *Json) MustToYamlString() string { 137 return string(j.MustToYaml()) 138 } 139 140 // ======================================================================== 141 // TOML 142 // ======================================================================== 143 144 func (j *Json) ToToml() ([]byte, error) { 145 j.mu.RLock() 146 defer j.mu.RUnlock() 147 return gtoml.Encode(*(j.p)) 148 } 149 150 func (j *Json) ToTomlString() (string, error) { 151 b, e := j.ToToml() 152 return string(b), e 153 } 154 155 func (j *Json) MustToToml() []byte { 156 result, err := j.ToToml() 157 if err != nil { 158 panic(err) 159 } 160 return result 161 } 162 163 func (j *Json) MustToTomlString() string { 164 return string(j.MustToToml()) 165 } 166 167 // ======================================================================== 168 // INI 169 // ======================================================================== 170 171 func (j *Json) ToIni() ([]byte, error) { 172 j.mu.RLock() 173 defer j.mu.RUnlock() 174 return gini.Encode((*(j.p)).(map[string]interface{})) 175 } 176 177 func (j *Json) ToIniString() (string, error) { 178 b, e := j.ToToml() 179 return string(b), e 180 } 181 182 func (j *Json) MustToIni() []byte { 183 result, err := j.ToIni() 184 if err != nil { 185 panic(err) 186 } 187 return result 188 } 189 190 func (j *Json) MustToIniString() string { 191 return string(j.MustToIni()) 192 }