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