jsons

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: May 24, 2022 License: MIT Imports: 10 Imported by: 5

README

jsons- golang library

Golang like scripting languages using the json library.

Download and Install
go get github.com/zooyer/jsons
Features
  • type: Raw/Bool/Number/String/Array/Object/Value.
  • compatible with standard json library.
  • support orm model mapping.
  • chain calls.
Example
package main

import (
	"fmt"
	
	"github.com/zooyer/jsons"
)

func main() {
	var json = `
		{
			"a": {
				"b": {
					"c": {
						"name": "test"
					}
				}
			}
		}
	`
	value, err := jsons.Unmarshal([]byte(json))
	if err != nil {
		panic(err)
	}

	c := value.Get("a", "b", "c")
	fmt.Println("c:", c.JSONString())

	name := c.Get("name")
	fmt.Println("name:", name.String())

	c.Set("name", "abc")
	fmt.Println("json:", value.JSONString())

	json = `
		[
			{
				"name": "z1",
				"age": 15
			},
			{
				"name": "z2",
				"age": 13
			},
			{
				"name": "z3",
				"age": 19
			},
			{
				"name": "z4",
				"age": 14
			}
		]
	`

	value, err = jsons.Unmarshal([]byte(json))
	if err != nil {
		panic(err)
	}

	value.Sort(func(i, j int) bool {
		return value.Int(i, "age") < value.Int(j, "age")
	})
	fmt.Println("sort:", value.JSONString())
	value.Reverse()
	fmt.Println("reverse:", value.JSONString())
}

ouput:

c: {"name":"test"}
name: test
json: {"a":{"b":{"c":{"name":"abc"}}}}
sort: [{"age":13,"name":"z2"},{"age":14,"name":"z4"},{"age":15,"name":"z1"},{"age":19,"name":"z3"}]
reverse: [{"age":19,"name":"z3"},{"age":15,"name":"z1"},{"age":14,"name":"z4"},{"age":13,"name":"z2"}]

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Marshal

func Marshal(v interface{}) ([]byte, error)

func MarshalIdent

func MarshalIdent(v interface{}, prefix, indent string) ([]byte, error)

func MysqlPath

func MysqlPath(keys ...interface{}) string

Types

type Array

type Array []interface{}

func (Array) Append

func (a Array) Append(arr Array) Array

func (Array) Cap

func (a Array) Cap(keys ...interface{}) int

func (Array) Clone

func (a Array) Clone(keys ...interface{}) Value

func (Array) Contains

func (a Array) Contains(value interface{}) bool

func (Array) Get

func (a Array) Get(keys ...interface{}) (val Value)

func (Array) GormDBDataType

func (Array) GormDBDataType(*gorm.DB, *schema.Field) string

func (Array) Index

func (a Array) Index(value interface{}) int

func (Array) JSON

func (a Array) JSON(keys ...interface{}) []byte

func (Array) JSONString

func (a Array) JSONString(keys ...interface{}) string

func (Array) JSONValue

func (a Array) JSONValue(keys ...interface{}) Value

func (Array) Len

func (a Array) Len(keys ...interface{}) int

func (Array) Range

func (a Array) Range(fn func(index int, value Value) (continued bool)) bool

func (Array) Raw added in v0.0.2

func (a Array) Raw(keys ...interface{}) Raw

func (Array) Reverse

func (a Array) Reverse(keys ...interface{}) Array

func (*Array) Scan

func (a *Array) Scan(v interface{}) error

func (Array) Set

func (a Array) Set(keys ...interface{})

func (Array) Slice

func (a Array) Slice(begin, end int) Array

func (Array) Sort

func (a Array) Sort(less func(i, j int) bool) Array

func (Array) Value

func (a Array) Value() (driver.Value, error)

type Bool

type Bool bool

func (Bool) Bool

func (b Bool) Bool() bool

func (Bool) GormDBDataType

func (Bool) GormDBDataType(*gorm.DB, *schema.Field) string

func (Bool) JSON

func (b Bool) JSON() []byte

func (Bool) JSONString

func (b Bool) JSONString() string

func (Bool) JSONValue

func (b Bool) JSONValue() Value

func (Bool) Raw added in v0.0.2

func (b Bool) Raw() Raw

func (*Bool) Scan

func (b *Bool) Scan(v interface{}) error

func (Bool) Value

func (b Bool) Value() (driver.Value, error)

type Number

type Number json.Number

func (Number) Float64

func (n Number) Float64() (float64, error)

func (Number) GormDBDataType

func (Number) GormDBDataType(*gorm.DB, *schema.Field) string

func (Number) Int64

func (n Number) Int64() (int64, error)

func (Number) JSON

func (n Number) JSON() []byte

func (Number) JSONString

func (n Number) JSONString() string

func (Number) JSONValue

func (n Number) JSONValue() Value

func (Number) MarshalJSON

func (n Number) MarshalJSON() ([]byte, error)

func (Number) Raw added in v0.0.2

func (n Number) Raw() Raw

func (*Number) Scan

func (n *Number) Scan(v interface{}) error

func (Number) String

func (n Number) String() string

func (Number) Uint64

func (n Number) Uint64() (uint64, error)

func (*Number) UnmarshalJSON

func (n *Number) UnmarshalJSON(data []byte) error

func (Number) Value

func (n Number) Value() (driver.Value, error)

type Object

type Object map[string]interface{}

func (Object) Array

func (o Object) Array(keys ...interface{}) Array

func (Object) Bool

func (o Object) Bool(keys ...interface{}) bool

func (Object) Clone

func (o Object) Clone(keys ...interface{}) Value

func (Object) Delete

func (o Object) Delete(keys ...interface{})

func (Object) Exist

func (o Object) Exist(keys ...interface{}) bool

func (Object) Float

func (o Object) Float(keys ...interface{}) float64

func (Object) Get

func (o Object) Get(keys ...interface{}) (val Value)

func (Object) GormDBDataType

func (Object) GormDBDataType(*gorm.DB, *schema.Field) string

func (Object) Int

func (o Object) Int(keys ...interface{}) int64

func (Object) Interface

func (o Object) Interface(keys ...interface{}) interface{}

func (Object) JSON

func (o Object) JSON(keys ...interface{}) []byte

func (Object) JSONString

func (o Object) JSONString(keys ...interface{}) string

func (Object) JSONValue

func (o Object) JSONValue(keys ...interface{}) Value

func (Object) Keys

func (o Object) Keys(keys ...interface{}) []string

func (Object) Len

func (o Object) Len(keys ...interface{}) int

func (Object) Number

func (o Object) Number(keys ...interface{}) Number

func (Object) Object

func (o Object) Object(keys ...interface{}) Object

func (Object) Range

func (o Object) Range(fn func(key string, value Value) (continued bool)) bool

func (Object) Raw added in v0.0.2

func (o Object) Raw(keys ...interface{}) Raw

func (*Object) Scan

func (o *Object) Scan(v interface{}) error

func (Object) Set

func (o Object) Set(keys ...interface{})

func (Object) String

func (o Object) String(keys ...interface{}) string

func (Object) Value

func (o Object) Value() (driver.Value, error)

type Raw

type Raw json.RawMessage

func (Raw) Array

func (r Raw) Array(keys ...interface{}) []Raw

func (Raw) Bool

func (r Raw) Bool(keys ...interface{}) bool

func (Raw) Exist

func (r Raw) Exist(keys ...interface{}) bool

func (Raw) Float

func (r Raw) Float(keys ...interface{}) float64

func (Raw) Get

func (r Raw) Get(keys ...interface{}) Raw

func (Raw) GormDBDataType

func (Raw) GormDBDataType(*gorm.DB, *schema.Field) string

func (Raw) Int

func (r Raw) Int(keys ...interface{}) int64

func (Raw) Interface

func (r Raw) Interface(keys ...interface{}) interface{}

func (Raw) IsArray

func (r Raw) IsArray() bool

func (Raw) IsBool

func (r Raw) IsBool() bool

func (Raw) IsNull

func (r Raw) IsNull() bool

func (Raw) IsNumber

func (r Raw) IsNumber() bool

func (Raw) IsObject

func (r Raw) IsObject() bool

func (Raw) IsString

func (r Raw) IsString() bool

func (Raw) IsValid

func (r Raw) IsValid() bool

func (Raw) JSON

func (r Raw) JSON(keys ...interface{}) []byte

func (Raw) JSONString

func (r Raw) JSONString(keys ...interface{}) string

func (Raw) JSONValue

func (r Raw) JSONValue(keys ...interface{}) Value

func (Raw) Keys

func (r Raw) Keys(keys ...interface{}) []string

func (Raw) Len

func (r Raw) Len(keys ...interface{}) int

func (Raw) MarshalJSON

func (r Raw) MarshalJSON() ([]byte, error)

func (Raw) Number

func (r Raw) Number(keys ...interface{}) Number

func (Raw) Object

func (r Raw) Object(keys ...interface{}) map[string]Raw

func (*Raw) Scan

func (r *Raw) Scan(v interface{}) error

func (Raw) String

func (r Raw) String(keys ...interface{}) string

func (Raw) Type

func (r Raw) Type(keys ...interface{}) string

func (*Raw) UnmarshalJSON

func (r *Raw) UnmarshalJSON(data []byte) error

func (Raw) Value

func (r Raw) Value() (driver.Value, error)

type String

type String string

func (String) GormDBDataType

func (String) GormDBDataType(*gorm.DB, *schema.Field) string

func (String) JSON

func (s String) JSON() []byte

func (String) JSONString

func (s String) JSONString() string

func (String) JSONValue

func (s String) JSONValue() Value

func (String) Raw added in v0.0.2

func (s String) Raw() Raw

func (*String) Scan

func (s *String) Scan(v interface{}) error

func (String) Value

func (s String) Value() (driver.Value, error)

type Value

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

func Unmarshal

func Unmarshal(data []byte) (val Value, err error)

func (Value) Append

func (v Value) Append(arr Array) Array

func (Value) Array

func (v Value) Array(keys ...interface{}) Array

func (Value) Bool

func (v Value) Bool(keys ...interface{}) bool

func (Value) Cap

func (v Value) Cap(keys ...interface{}) int

func (Value) Clone

func (v Value) Clone(keys ...interface{}) Value

func (Value) Contains

func (v Value) Contains(value interface{}) bool

func (Value) Delete

func (v Value) Delete(keys ...interface{})

func (Value) Exist

func (v Value) Exist(keys ...interface{}) bool

func (Value) Float

func (v Value) Float(keys ...interface{}) float64

func (Value) Get

func (v Value) Get(keys ...interface{}) (val Value)

func (Value) GormDBDataType

func (Value) GormDBDataType(*gorm.DB, *schema.Field) string

func (Value) Index

func (v Value) Index(value interface{}) int

func (Value) Int

func (v Value) Int(keys ...interface{}) int64

func (Value) Interface

func (v Value) Interface(keys ...interface{}) interface{}

func (Value) IsArray

func (v Value) IsArray(keys ...interface{}) bool

func (Value) IsBool

func (v Value) IsBool(keys ...interface{}) bool

func (Value) IsNull

func (v Value) IsNull(keys ...interface{}) bool

func (Value) IsNumber

func (v Value) IsNumber(keys ...interface{}) bool

func (Value) IsObject

func (v Value) IsObject(keys ...interface{}) bool

func (Value) IsString

func (v Value) IsString(keys ...interface{}) bool

func (Value) JSON

func (v Value) JSON(keys ...interface{}) []byte

func (Value) JSONString

func (v Value) JSONString(keys ...interface{}) string

func (Value) Keys

func (v Value) Keys(keys ...interface{}) []string

func (Value) Len

func (v Value) Len(keys ...interface{}) int

func (Value) Marshal

func (v Value) Marshal(obj interface{}) error

func (Value) MarshalJSON

func (v Value) MarshalJSON() ([]byte, error)

func (Value) Number

func (v Value) Number(keys ...interface{}) Number

func (Value) Object

func (v Value) Object(keys ...interface{}) Object

func (Value) Range

func (v Value) Range(fn func(key interface{}, value Value) (continued bool)) bool

func (Value) Raw added in v0.0.2

func (v Value) Raw(keys ...interface{}) Raw

func (Value) Reverse

func (v Value) Reverse(keys ...interface{}) Array

func (*Value) Scan

func (v *Value) Scan(val interface{}) error

func (Value) Set

func (v Value) Set(keys ...interface{})

func (Value) Slice

func (v Value) Slice(begin, end int) Array

func (Value) Sort

func (v Value) Sort(less func(i, j int) bool) Array

func (Value) String

func (v Value) String(keys ...interface{}) string

func (Value) Type

func (v Value) Type(keys ...interface{}) string

func (Value) Uint

func (v Value) Uint(keys ...interface{}) uint64

func (*Value) Unmarshal

func (v *Value) Unmarshal(obj interface{}) error

func (*Value) UnmarshalJSON

func (v *Value) UnmarshalJSON(data []byte) error

func (Value) Value

func (v Value) Value() (driver.Value, error)

Jump to

Keyboard shortcuts

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