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  }