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  }