gjson

package
v1.16.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package gjson provides convenient API for JSON/XML/INI/YAML/TOML data handling.

Example (ConversionGetStruct)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 1,
            "array" : ["John", "Ming"]
        }
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		type Users struct {
			Count int
			Array []string
		}
		users := new(Users)
		if err := j.GetStruct("users", users); err != nil {
			panic(err)
		}
		fmt.Printf(`%+v`, users)
	}

}
Output:

&{Count:1 Array:[John Ming]}
Example (ConversionNormalFormats)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 1,
            "array" : ["John", "Ming"]
        }
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		fmt.Println("JSON:")
		fmt.Println(j.MustToJsonString())
		fmt.Println("======================")

		fmt.Println("XML:")
		fmt.Println(j.MustToXmlString())
		fmt.Println("======================")

		fmt.Println("YAML:")
		fmt.Println(j.MustToYamlString())
		fmt.Println("======================")

		fmt.Println("TOML:")
		fmt.Println(j.MustToTomlString())
	}

}
Output:

JSON:
{"users":{"array":["John","Ming"],"count":1}}
======================
XML:
<users><array>John</array><array>Ming</array><count>1</count></users>
======================
YAML:
users:
    array:
      - John
      - Ming
    count: 1

======================
TOML:
[users]
  array = ["John", "Ming"]
  count = 1.0
Example (ConversionToStruct)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`
	{
        "count" : 1,
        "array" : ["John", "Ming"]
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		type Users struct {
			Count int
			Array []string
		}
		users := new(Users)
		if err := j.ToStruct(users); err != nil {
			panic(err)
		}
		fmt.Printf(`%+v`, users)
	}

}
Output:

&{Count:1 Array:[John Ming]}
Example (DataSetCreate1)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	j := gjson.New(nil)
	j.Set("name", "John")
	j.Set("score", 99.5)
	fmt.Printf(
		"Name: %s, Score: %v\n",
		j.GetString("name"),
		j.GetFloat32("score"),
	)
	fmt.Println(j.MustToJsonString())

}
Output:

Name: John, Score: 99.5
{"name":"John","score":99.5}
Example (DataSetCreate2)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	j := gjson.New(nil)
	for i := 0; i < 5; i++ {
		j.Set(fmt.Sprintf(`%d.id`, i), i)
		j.Set(fmt.Sprintf(`%d.name`, i), fmt.Sprintf(`student-%d`, i))
	}
	fmt.Println(j.MustToJsonString())

}
Output:

[{"id":0,"name":"student-0"},{"id":1,"name":"student-1"},{"id":2,"name":"student-2"},{"id":3,"name":"student-3"},{"id":4,"name":"student-4"}]
Example (DataSetRuntimeEdit)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 2,
            "list"  : [
                {"name" : "Ming", "score" : 60},
                {"name" : "John", "score" : 59}
            ]
        }
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		j.Set("users.list.1.score", 100)
		fmt.Println("John Score:", j.GetFloat32("users.list.1.score"))
		fmt.Println(j.MustToJsonString())
	}
}
Output:

John Score: 100
{"users":{"count":2,"list":[{"name":"Ming","score":60},{"name":"John","score":100}]}}
Example (LoadContent)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonContent := `{"name":"john", "score":"100"}`
	j, _ := gjson.LoadContent(jsonContent)
	fmt.Println(j.Get("name"))
	fmt.Println(j.Get("score"))
}
Output:

john
100
Example (LoadJson)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/debug/gdebug"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonFilePath := gdebug.TestDataPath("json", "data1.json")
	j, _ := gjson.Load(jsonFilePath)
	fmt.Println(j.Get("name"))
	fmt.Println(j.Get("score"))
}
Output:

Example (LoadXml)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/debug/gdebug"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonFilePath := gdebug.TestDataPath("xml", "data1.xml")
	j, _ := gjson.Load(jsonFilePath)
	fmt.Println(j.Get("doc.name"))
	fmt.Println(j.Get("doc.score"))
}
Output:

Example (MapSliceChange)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonContent := `{"map":{"key":"value"}, "slice":[59,90]}`
	j, _ := gjson.LoadJson(jsonContent)
	m := j.GetMap("map")
	fmt.Println(m)

	// Change the key-value pair.
	m["key"] = "john"

	// It changes the underlying key-value pair.
	fmt.Println(j.GetMap("map"))

	s := j.GetArray("slice")
	fmt.Println(s)

	// Change the value of specified index.
	s[0] = 100

	// It changes the underlying slice.
	fmt.Println(j.GetArray("slice"))

}
Output:

map[key:value]
map[key:john]
[59 90]
[100 90]
Example (NewFromJson)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonContent := `{"name":"john", "score":"100"}`
	j := gjson.New(jsonContent)
	fmt.Println(j.Get("name"))
	fmt.Println(j.Get("score"))
}
Output:

john
100
Example (NewFromStruct)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	type Me struct {
		Name  string `json:"name"`
		Score int    `json:"score"`
	}
	me := Me{
		Name:  "john",
		Score: 100,
	}
	j := gjson.New(me)
	fmt.Println(j.Get("name"))
	fmt.Println(j.Get("score"))
}
Output:

john
100
Example (NewFromStructWithTag)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	type Me struct {
		Name  string `tag:"name"`
		Score int    `tag:"score"`
		Title string
	}
	me := Me{
		Name:  "john",
		Score: 100,
		Title: "engineer",
	}
	// The parameter <tags> specifies custom priority tags for struct conversion to map,
	// multiple tags joined with char ','.
	j := gjson.NewWithTag(me, "tag")
	fmt.Println(j.Get("name"))
	fmt.Println(j.Get("score"))
	fmt.Println(j.Get("Title"))
}
Output:

john
100
engineer
Example (NewFromXml)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	jsonContent := `<?xml version="1.0" encoding="UTF-8"?><doc><name>john</name><score>100</score></doc>`
	j := gjson.New(jsonContent)
	// Note that there's root node in the XML content.
	fmt.Println(j.Get("doc.name"))
	fmt.Println(j.Get("doc.score"))
}
Output:

john
100
Example (PatternCustomSplitChar)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 2,
            "list"  : [
                {"name" : "Ming",  "score" : 60},
                {"name" : "John", "score" : 99.5}
            ]
        }
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		j.SetSplitChar('#')
		fmt.Println("John Score:", j.GetFloat32("users#list#1#score"))
	}
}
Output:

John Score: 99.5
Example (PatternGet)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 2,
            "list"  : [
                {"name" : "Ming",  "score" : 60},
                {"name" : "John", "score" : 99.5}
            ]
        }
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		fmt.Println("John Score:", j.GetFloat32("users.list.1.score"))
	}
}
Output:

John Score: 99.5
Example (PatternViolenceCheck)
package main

import (
	"fmt"
	"github.com/bjxujiang/gf/encoding/gjson"
)

func main() {
	data :=
		`{
        "users" : {
            "count" : 100
        },
        "users.count" : 101
    }`
	if j, err := gjson.DecodeToJson(data); err != nil {
		panic(err)
	} else {
		j.SetViolenceCheck(true)
		fmt.Println("Users Count:", j.GetInt("users.count"))
	}
}
Output:

Users Count: 101

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decode

func Decode(data interface{}) (interface{}, error)

Decode decodes json format <data> to golang variable. The parameter <data> can be either bytes or string type.

func DecodeTo

func DecodeTo(data interface{}, v interface{}) error

Decode decodes json format <data> to specified golang variable <v>. The parameter <data> can be either bytes or string type. The parameter <v> should be a pointer type.

func Encode

func Encode(value interface{}) ([]byte, error)

Encode encodes any golang variable <value> to JSON bytes.

func IsValidDataType

func IsValidDataType(dataType string) bool

IsValidDataType checks and returns whether given <dataType> a valid data type for loading.

func Valid

func Valid(data interface{}) bool

Valid checks whether <data> is a valid JSON data type. The parameter <data> specifies the json format data, which can be either bytes or string type.

Types

type Json

type Json struct {
	// contains filtered or unexported fields
}

The customized JSON struct.

func DecodeToJson

func DecodeToJson(data interface{}, safe ...bool) (*Json, error)

DecodeToJson codes json format <data> to a Json object. The parameter <data> can be either bytes or string type.

func Load

func Load(path string, safe ...bool) (*Json, error)

Load loads content from specified file <path>, and creates a Json object from its content.

func LoadContent

func LoadContent(data interface{}, safe ...bool) (*Json, error)

LoadContent creates a Json object from given content, it checks the data type of <content> automatically, supporting data content type as follows: JSON, XML, INI, YAML and TOML.

func LoadContentType

func LoadContentType(dataType string, data interface{}, safe ...bool) (*Json, error)

LoadContentType creates a Json object from given type and content, supporting data content type as follows: JSON, XML, INI, YAML and TOML.

func LoadIni

func LoadIni(data interface{}, safe ...bool) (*Json, error)

LoadIni creates a Json object from given INI format content.

func LoadJson

func LoadJson(data interface{}, safe ...bool) (*Json, error)

LoadJson creates a Json object from given JSON format content.

func LoadToml

func LoadToml(data interface{}, safe ...bool) (*Json, error)

LoadToml creates a Json object from given TOML format content.

func LoadXml

func LoadXml(data interface{}, safe ...bool) (*Json, error)

LoadXml creates a Json object from given XML format content.

func LoadYaml

func LoadYaml(data interface{}, safe ...bool) (*Json, error)

LoadYaml creates a Json object from given YAML format content.

func New

func New(data interface{}, safe ...bool) *Json

New creates a Json object with any variable type of <data>, but <data> should be a map or slice for data access reason, or it will make no sense.

The parameter <safe> specifies whether using this Json object in concurrent-safe context, which is false in default.

func NewWithOption

func NewWithOption(data interface{}, option Option) *Json

NewWithOption creates a Json object with any variable type of <data>, but <data> should be a map or slice for data access reason, or it will make no sense.

func NewWithTag

func NewWithTag(data interface{}, tags string, safe ...bool) *Json

NewWithTag creates a Json object with any variable type of <data>, but <data> should be a map or slice for data access reason, or it will make no sense.

The parameter <tags> specifies priority tags for struct conversion to map, multiple tags joined with char ','.

The parameter <safe> specifies whether using this Json object in concurrent-safe context, which is false in default.

func (*Json) Append

func (j *Json) Append(pattern string, value interface{}) error

Append appends value to the value by specified <pattern>. The target value by <pattern> should be type of slice.

func (*Json) Array

func (j *Json) Array() []interface{}

Array converts current Json object to []interface{}. It returns nil if fails.

func (*Json) Contains

func (j *Json) Contains(pattern string) bool

Contains checks whether the value by specified <pattern> exist.

func (*Json) Dump

func (j *Json) Dump()

Dump prints current Json object with more manually readable.

func (*Json) Export

func (j *Json) Export() string

Export returns <j> as a string with more manually readable.

func (*Json) Get

func (j *Json) Get(pattern string, def ...interface{}) interface{}

Get retrieves and returns value by specified <pattern>. It returns all values of current Json object if <pattern> is given empty or string ".". It returns nil if no value found by <pattern>.

We can also access slice item by its index number in <pattern> like: "list.10", "array.0.name", "array.0.1.id".

It returns a default value specified by <def> if value for <pattern> is not found.

func (*Json) GetArray

func (j *Json) GetArray(pattern string, def ...interface{}) []interface{}

GetArray retrieves the value by specified <pattern>, and converts it to a slice of []interface{}.

func (*Json) GetBool

func (j *Json) GetBool(pattern string, def ...interface{}) bool

GetBool retrieves the value by specified <pattern>, converts and returns it as bool. It returns false when value is: "", 0, false, off, nil; or returns true instead.

func (*Json) GetBytes

func (j *Json) GetBytes(pattern string, def ...interface{}) []byte

GetBytes retrieves the value by specified <pattern> and converts it to []byte.

func (*Json) GetDuration

func (j *Json) GetDuration(pattern string, def ...interface{}) time.Duration

GetDuration retrieves the value by specified <pattern> and converts it to time.Duration.

func (*Json) GetFloat32

func (j *Json) GetFloat32(pattern string, def ...interface{}) float32

GetFloat32 retrieves the value by specified <pattern> and converts it to float32.

func (*Json) GetFloat64

func (j *Json) GetFloat64(pattern string, def ...interface{}) float64

GetFloat64 retrieves the value by specified <pattern> and converts it to float64.

func (*Json) GetFloats

func (j *Json) GetFloats(pattern string, def ...interface{}) []float64

GetFloats retrieves the value by specified <pattern> and converts it to []float64.

func (*Json) GetGTime

func (j *Json) GetGTime(pattern string, format ...string) *gtime.Time

GetGTime retrieves the value by specified <pattern> and converts it to *gtime.Time.

func (*Json) GetInt

func (j *Json) GetInt(pattern string, def ...interface{}) int

GetInt retrieves the value by specified <pattern> and converts it to int.

func (*Json) GetInt16

func (j *Json) GetInt16(pattern string, def ...interface{}) int16

GetInt16 retrieves the value by specified <pattern> and converts it to int16.

func (*Json) GetInt32

func (j *Json) GetInt32(pattern string, def ...interface{}) int32

GetInt32 retrieves the value by specified <pattern> and converts it to int32.

func (*Json) GetInt64

func (j *Json) GetInt64(pattern string, def ...interface{}) int64

GetInt64 retrieves the value by specified <pattern> and converts it to int64.

func (*Json) GetInt8

func (j *Json) GetInt8(pattern string, def ...interface{}) int8

GetInt8 retrieves the value by specified <pattern> and converts it to int8.

func (*Json) GetInterfaces

func (j *Json) GetInterfaces(pattern string, def ...interface{}) []interface{}

GetInterfaces is alias of GetArray. See GetArray.

func (*Json) GetInts

func (j *Json) GetInts(pattern string, def ...interface{}) []int

GetInts retrieves the value by specified <pattern> and converts it to []int.

func (*Json) GetJson

func (j *Json) GetJson(pattern string, def ...interface{}) *Json

GetJson gets the value by specified <pattern>, and converts it to a un-concurrent-safe Json object.

func (*Json) GetJsonMap

func (j *Json) GetJsonMap(pattern string, def ...interface{}) map[string]*Json

GetJsonMap gets the value by specified <pattern>, and converts it to a map of un-concurrent-safe Json object.

func (*Json) GetJsons

func (j *Json) GetJsons(pattern string, def ...interface{}) []*Json

GetJsons gets the value by specified <pattern>, and converts it to a slice of un-concurrent-safe Json object.

func (*Json) GetMap

func (j *Json) GetMap(pattern string, def ...interface{}) map[string]interface{}

GetMap retrieves and returns the value by specified <pattern> as map[string]interface{}.

func (*Json) GetMapStrStr

func (j *Json) GetMapStrStr(pattern string, def ...interface{}) map[string]string

GetMapStrStr retrieves and returns the value by specified <pattern> as map[string]string.

func (*Json) GetMapToMap

func (j *Json) GetMapToMap(pattern string, pointer interface{}, mapping ...map[string]string) error

GetMapToMap retrieves the value by specified <pattern> and converts it to specified map variable. See gconv.MapToMap.

func (*Json) GetMapToMapDeep

func (j *Json) GetMapToMapDeep(pattern string, pointer interface{}, mapping ...map[string]string) error

GetMapToMapDeep retrieves the value by specified <pattern> and converts it to specified map variable recursively. See gconv.MapToMapDeep.

func (*Json) GetMapToMaps

func (j *Json) GetMapToMaps(pattern string, pointer interface{}, mapping ...map[string]string) error

GetMapToMaps retrieves the value by specified <pattern> and converts it to specified map slice variable. See gconv.MapToMaps.

func (*Json) GetMapToMapsDeep

func (j *Json) GetMapToMapsDeep(pattern string, pointer interface{}, mapping ...map[string]string) error

GetMapToMapsDeep retrieves the value by specified <pattern> and converts it to specified map slice variable recursively. See gconv.MapToMapsDeep.

func (*Json) GetMaps

func (j *Json) GetMaps(pattern string, def ...interface{}) []map[string]interface{}

GetMaps retrieves and returns the value by specified <pattern> as []map[string]interface{}.

func (*Json) GetScan

func (j *Json) GetScan(pattern string, pointer interface{}, mapping ...map[string]string) error

GetScan automatically calls Struct or Structs function according to the type of parameter <pointer> to implement the converting..

func (*Json) GetScanDeep

func (j *Json) GetScanDeep(pattern string, pointer interface{}, mapping ...map[string]string) error

GetScanDeep automatically calls StructDeep or StructsDeep function according to the type of parameter <pointer> to implement the converting..

func (*Json) GetString

func (j *Json) GetString(pattern string, def ...interface{}) string

GetString retrieves the value by specified <pattern> and converts it to string.

func (*Json) GetStrings

func (j *Json) GetStrings(pattern string, def ...interface{}) []string

GetStrings retrieves the value by specified <pattern> and converts it to []string.

func (*Json) GetStruct

func (j *Json) GetStruct(pattern string, pointer interface{}, mapping ...map[string]string) error

GetStruct retrieves the value by specified <pattern> and converts it to specified object <pointer>. The <pointer> should be the pointer to an object.

func (*Json) GetStructDeep

func (j *Json) GetStructDeep(pattern string, pointer interface{}, mapping ...map[string]string) error

GetStructDeep does GetStruct recursively. Deprecated, use GetStruct instead.

func (*Json) GetStructs

func (j *Json) GetStructs(pattern string, pointer interface{}, mapping ...map[string]string) error

GetStructs converts any slice to given struct slice.

func (*Json) GetStructsDeep

func (j *Json) GetStructsDeep(pattern string, pointer interface{}, mapping ...map[string]string) error

GetStructsDeep converts any slice to given struct slice recursively. Deprecated, use GetStructs instead.

func (*Json) GetTime

func (j *Json) GetTime(pattern string, format ...string) time.Time

GetTime retrieves the value by specified <pattern> and converts it to time.Time.

func (*Json) GetUint

func (j *Json) GetUint(pattern string, def ...interface{}) uint

GetUint retrieves the value by specified <pattern> and converts it to uint.

func (*Json) GetUint16

func (j *Json) GetUint16(pattern string, def ...interface{}) uint16

GetUint16 retrieves the value by specified <pattern> and converts it to uint16.

func (*Json) GetUint32

func (j *Json) GetUint32(pattern string, def ...interface{}) uint32

GetUint32 retrieves the value by specified <pattern> and converts it to uint32.

func (*Json) GetUint64

func (j *Json) GetUint64(pattern string, def ...interface{}) uint64

GetUint64 retrieves the value by specified <pattern> and converts it to uint64.

func (*Json) GetUint8

func (j *Json) GetUint8(pattern string, def ...interface{}) uint8

GetUint8 retrieves the value by specified <pattern> and converts it to uint8.

func (*Json) GetVar

func (j *Json) GetVar(pattern string, def ...interface{}) *gvar.Var

GetVar returns a gvar.Var with value by given <pattern>.

func (*Json) GetVars

func (j *Json) GetVars(pattern string, def ...interface{}) []*gvar.Var

GetVars returns []*gvar.Var with value by given <pattern>.

func (*Json) IsNil

func (j *Json) IsNil() bool

IsNil checks whether the value pointed by <j> is nil.

func (*Json) Len

func (j *Json) Len(pattern string) int

Len returns the length/size of the value by specified <pattern>. The target value by <pattern> should be type of slice or map. It returns -1 if the target value is not found, or its type is invalid.

func (*Json) Map

func (j *Json) Map() map[string]interface{}

Map converts current Json object to map[string]interface{}. It returns nil if fails.

func (*Json) MapToMap

func (j *Json) MapToMap(pointer interface{}, mapping ...map[string]string) error

MapToMap converts current Json object to specified map variable. The parameter of <pointer> should be type of *map.

func (*Json) MapToMaps

func (j *Json) MapToMaps(pointer interface{}, mapping ...map[string]string) error

MapToMaps converts current Json object to specified map variable slice. The parameter of <pointer> should be type of []map/*map.

func (*Json) MarshalJSON

func (j *Json) MarshalJSON() ([]byte, error)

MarshalJSON implements the interface MarshalJSON for json.Marshal.

func (*Json) MustToIni

func (j *Json) MustToIni() []byte

func (*Json) MustToIniString

func (j *Json) MustToIniString() string

func (*Json) MustToJson

func (j *Json) MustToJson() []byte

func (*Json) MustToJsonIndent

func (j *Json) MustToJsonIndent() []byte

func (*Json) MustToJsonIndentString

func (j *Json) MustToJsonIndentString() string

func (*Json) MustToJsonString

func (j *Json) MustToJsonString() string

func (*Json) MustToToml

func (j *Json) MustToToml() []byte

func (*Json) MustToTomlString

func (j *Json) MustToTomlString() string

func (*Json) MustToXml

func (j *Json) MustToXml(rootTag ...string) []byte

func (*Json) MustToXmlIndent

func (j *Json) MustToXmlIndent(rootTag ...string) []byte

func (*Json) MustToXmlIndentString

func (j *Json) MustToXmlIndentString(rootTag ...string) string

func (*Json) MustToXmlString

func (j *Json) MustToXmlString(rootTag ...string) string

func (*Json) MustToYaml

func (j *Json) MustToYaml() []byte

func (*Json) MustToYamlString

func (j *Json) MustToYamlString() string

func (*Json) Remove

func (j *Json) Remove(pattern string) error

Remove deletes value with specified <pattern>. It supports hierarchical data access by char separator, which is '.' in default.

func (*Json) Scan

func (j *Json) Scan(pointer interface{}, mapping ...map[string]string) error

Scan automatically calls Struct or Structs function according to the type of parameter <pointer> to implement the converting..

func (*Json) Set

func (j *Json) Set(pattern string, value interface{}) error

Set sets value with specified <pattern>. It supports hierarchical data access by char separator, which is '.' in default.

func (*Json) SetSplitChar

func (j *Json) SetSplitChar(char byte)

SetSplitChar sets the separator char for hierarchical data access.

func (*Json) SetViolenceCheck

func (j *Json) SetViolenceCheck(enabled bool)

SetViolenceCheck enables/disables violence check for hierarchical data access.

func (*Json) Struct

func (j *Json) Struct(pointer interface{}, mapping ...map[string]string) error

Struct converts current Json object to specified object. The <pointer> should be a pointer type of *struct.

func (*Json) Structs

func (j *Json) Structs(pointer interface{}, mapping ...map[string]string) error

Structs converts current Json object to specified object slice. The <pointer> should be a pointer type of []struct/*struct.

func (*Json) ToArray

func (j *Json) ToArray() []interface{}

ToArray converts current Json object to []interface{}. It returns nil if fails. Deprecated, use Array instead.

func (*Json) ToIni

func (j *Json) ToIni() ([]byte, error)

func (*Json) ToIniString

func (j *Json) ToIniString() (string, error)

func (*Json) ToJson

func (j *Json) ToJson() ([]byte, error)

func (*Json) ToJsonIndent

func (j *Json) ToJsonIndent() ([]byte, error)

func (*Json) ToJsonIndentString

func (j *Json) ToJsonIndentString() (string, error)

func (*Json) ToJsonString

func (j *Json) ToJsonString() (string, error)

func (*Json) ToMap

func (j *Json) ToMap() map[string]interface{}

ToMap converts current Json object to map[string]interface{}. It returns nil if fails. Deprecated, use Map instead.

func (*Json) ToMapToMap

func (j *Json) ToMapToMap(pointer interface{}, mapping ...map[string]string) error

ToMapToMap converts current Json object to specified map variable. The parameter of <pointer> should be type of *map. Deprecated, use MapToMap instead.

func (*Json) ToMapToMapDeep

func (j *Json) ToMapToMapDeep(pointer interface{}, mapping ...map[string]string) error

ToMapToMapDeep converts current Json object to specified map variable recursively. The parameter of <pointer> should be type of *map. Deprecated, use MapToMap instead.

func (*Json) ToMapToMaps

func (j *Json) ToMapToMaps(pointer interface{}, mapping ...map[string]string) error

ToMapToMaps converts current Json object to specified map variable slice. The parameter of <pointer> should be type of []map/*map. Deprecated, use MapToMaps instead.

func (*Json) ToMapToMapsDeep

func (j *Json) ToMapToMapsDeep(pointer interface{}, mapping ...map[string]string) error

ToMapToMapsDeep converts current Json object to specified map variable slice recursively. The parameter of <pointer> should be type of []map/*map. Deprecated, use MapToMaps instead.

func (*Json) ToScan

func (j *Json) ToScan(pointer interface{}, mapping ...map[string]string) error

ToScan automatically calls Struct or Structs function according to the type of parameter <pointer> to implement the converting.. Deprecated, use Scan instead.

func (*Json) ToScanDeep

func (j *Json) ToScanDeep(pointer interface{}, mapping ...map[string]string) error

ToScanDeep automatically calls StructDeep or StructsDeep function according to the type of parameter <pointer> to implement the converting.. Deprecated, use Scan instead.

func (*Json) ToStruct

func (j *Json) ToStruct(pointer interface{}, mapping ...map[string]string) error

ToStruct converts current Json object to specified object. The <pointer> should be a pointer type of *struct. Deprecated, use Struct instead.

func (*Json) ToStructDeep

func (j *Json) ToStructDeep(pointer interface{}, mapping ...map[string]string) error

ToStructDeep converts current Json object to specified object recursively. The <pointer> should be a pointer type of *struct. Deprecated, use Struct instead.

func (*Json) ToStructs

func (j *Json) ToStructs(pointer interface{}, mapping ...map[string]string) error

ToStructs converts current Json object to specified object slice. The <pointer> should be a pointer type of []struct/*struct. Deprecated, use Structs instead.

func (*Json) ToStructsDeep

func (j *Json) ToStructsDeep(pointer interface{}, mapping ...map[string]string) error

ToStructsDeep converts current Json object to specified object slice recursively. The <pointer> should be a pointer type of []struct/*struct. Deprecated, use Structs instead.

func (*Json) ToToml

func (j *Json) ToToml() ([]byte, error)

func (*Json) ToTomlString

func (j *Json) ToTomlString() (string, error)

func (*Json) ToXml

func (j *Json) ToXml(rootTag ...string) ([]byte, error)

func (*Json) ToXmlIndent

func (j *Json) ToXmlIndent(rootTag ...string) ([]byte, error)

func (*Json) ToXmlIndentString

func (j *Json) ToXmlIndentString(rootTag ...string) (string, error)

func (*Json) ToXmlString

func (j *Json) ToXmlString(rootTag ...string) (string, error)

func (*Json) ToYaml

func (j *Json) ToYaml() ([]byte, error)

func (*Json) ToYamlString

func (j *Json) ToYamlString() (string, error)

func (*Json) UnmarshalJSON

func (j *Json) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.

func (*Json) UnmarshalValue

func (j *Json) UnmarshalValue(value interface{}) error

UnmarshalValue is an interface implement which sets any type of value for Json.

func (*Json) Value

func (j *Json) Value() interface{}

Value returns the json value.

func (*Json) Var

func (j *Json) Var() *gvar.Var

Var returns the json value as *gvar.Var.

type Option

type Option struct {
	Safe      bool   // Mark this object is for in concurrent-safe usage.
	Tags      string // Custom priority tags for decoding.
	StrNumber bool   // StrNumber causes the Decoder to unmarshal a number into an interface{} as a string instead of as a float64.
}

Option for Json object creating.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL