simplejson

package module
v0.0.0-...-c70e6bd Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2018 License: MIT Imports: 5 Imported by: 23

README

This is a fork of go-simplejson

Installation

$ go get github.com/gobs/simplejson

Documentation

http://godoc.org/github.com/gobs/simplejson


go-simplejson

a Go package to interact with arbitrary JSON

Build Status

Importing

import github.com/bitly/go-simplejson

Documentation

Visit the docs on gopkgdoc

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoMap       = errors.New("type assertion to map[string]interface{} failed")
	ErrNoArray     = errors.New("type assertion to []interface{} failed")
	ErrNoBool      = errors.New("type assertion to bool failed")
	ErrNoString    = errors.New("type assertion to string failed")
	ErrNoFloat     = errors.New("type assertion to float64 failed")
	ErrNoByteArray = errors.New("type assertion to []byte failed")
)

Functions

func DumpBytes

func DumpBytes(obj interface{}, options ...DumpOption) ([]byte, error)

DumpBytes convert Go data object to JSON []byte

func DumpString

func DumpString(obj interface{}, options ...DumpOption) (string, error)

DumpString encode Go data object to JSON string

func Marshal

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

this is an alias for json.Marshal, for clients that don't include encoding/json

func MustDumpBytes

func MustDumpBytes(obj interface{}, options ...DumpOption) []byte

MustDumpBytes encode Go data object to JSON []byte (panic in case of error)

func MustDumpString

func MustDumpString(obj interface{}, options ...DumpOption) string

MustDumpString encode Go data object to JSON string (panic in case of error)

func Unmarshal

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

this is an alias for json.Unmarshal, for clients that don't include encoding/json

func Version

func Version() string

returns the current implementation version

Types

type Bag

type Bag map[string]interface{}

basic type for quick conversion to JSON

type DumpOption

type DumpOption func(enc *json.Encoder)

DumpOption is the type of DumpBytes/DumpString options

func EscapeHTML

func EscapeHTML(escape bool) DumpOption

EscapeHTML instruct DumpBytes/DumpString to escape HTML in JSON valus (if true)

func Indent

func Indent(s string) DumpOption

Indent sets the indentation level (passed as string of spaces) for DumpBytes/DumpString

type Json

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

func AsJson

func AsJson(obj interface{}) *Json

Cast to Json{}

func Load

func Load(reader io.Reader) (*Json, error)

Load loads JSON from `reader` io.Reader and return a new `Json` object

func LoadBytes

func LoadBytes(body []byte) (*Json, error)

LoadBytes load JSON from `body` []byte and return a new `Json` object

func LoadPartial

func LoadPartial(body []byte) (*Json, []byte, error)

LoadPartial load JSON from `body` []byte and return a new `Json` object. It also returns any remaining bytes from the input.

func LoadPartialString

func LoadPartialString(body string) (*Json, string, error)

LoadPartialString load JSON from `body` string and return a new `Json` object. It also returns any remaining bytes from the input.

func LoadString

func LoadString(body string) (*Json, error)

LoadString loads JSON from `body` string and return a new `Json` object

func (*Json) Array

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

Array type asserts to an `array`

func (*Json) Bool

func (j *Json) Bool() (bool, error)

Bool type asserts to `bool`

func (*Json) Bytes

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

Bytes type asserts to `[]byte`

func (*Json) CheckGet

func (j *Json) CheckGet(key string) (*Json, bool)

CheckGet returns a pointer to a new `Json` object and a `bool` identifying success or failure

useful for chained operations when success is important:

if data, ok := js.Get("top_level").CheckGet("inner"); ok {
    log.Println(data)
}

func (*Json) Data

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

Return value as interface{}

func (*Json) Encode

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

Encode returns its marshaled data as `[]byte`

func (*Json) Float64

func (j *Json) Float64() (float64, error)

Float64 type asserts to `float64`

func (*Json) Get

func (j *Json) Get(key string) *Json

Get returns a pointer to a new `Json` object for `key` in its `map` representation

useful for chaining operations (to traverse a nested JSON):

js.Get("top_level").Get("dict").Get("value").Int()

func (*Json) GetIndex

func (j *Json) GetIndex(index int) *Json

GetIndex resturns a pointer to a new `Json` object for `index` in its `array` representation

this is the analog to Get when accessing elements of a json array instead of a json object:

js.Get("top_level").Get("array").GetIndex(1).Get("key").Int()

func (*Json) GetPath

func (j *Json) GetPath(branch ...string) *Json

GetPath searches for the item as specified by the branch without the need to deep dive using Get()'s.

js.GetPath("top_level", "dict")

func (*Json) Int

func (j *Json) Int() (int, error)

Int type asserts to `float64` then converts to `int`

func (*Json) Int64

func (j *Json) Int64() (int64, error)

Int type asserts to `float64` then converts to `int64`

func (*Json) MakeArray

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

MakeArray always return an `array` (this is useful for HAL responses that can return either an array or a single element ):

func (*Json) Map

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

Map type asserts to `map`

func (*Json) MarshalJSON

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

Implements the json.Marshaler interface.

func (*Json) MustArray

func (j *Json) MustArray(args ...[]interface{}) []interface{}

MustArray guarantees the return of a `[]interface{}` (with optional default)

useful when you want to interate over array values in a succinct manner:

for i, v := range js.Get("results").MustArray() {
	fmt.Println(i, v)
}

func (*Json) MustFloat64

func (j *Json) MustFloat64(args ...float64) float64

MustFloat64 guarantees the return of a `float64` (with optional default)

useful when you explicitly want a `float64` in a single value return context:

myFunc(js.Get("param1").MustFloat64(), js.Get("optional_param").MustFloat64(5.150))

func (*Json) MustInt

func (j *Json) MustInt(args ...int) int

MustInt guarantees the return of an `int` (with optional default)

useful when you explicitly want an `int` in a single value return context:

myFunc(js.Get("param1").MustInt(), js.Get("optional_param").MustInt(5150))

func (*Json) MustInt64

func (j *Json) MustInt64(args ...int64) int64

MustInt64 guarantees the return of an `int64` (with optional default)

useful when you explicitly want an `int64` in a single value return context:

myFunc(js.Get("param1").MustInt64(), js.Get("optional_param").MustInt64(5150))

func (*Json) MustMap

func (j *Json) MustMap(args ...map[string]interface{}) map[string]interface{}

MustMap guarantees the return of a `map[string]interface{}` (with optional default)

useful when you want to interate over map values in a succinct manner:

for k, v := range js.Get("dictionary").MustMap() {
	fmt.Println(k, v)
}

func (*Json) MustString

func (j *Json) MustString(args ...string) string

MustString guarantees the return of a `string` (with optional default)

useful when you explicitly want a `string` in a single value return context:

myFunc(js.Get("param1").MustString(), js.Get("optional_param").MustString("my_default"))

func (*Json) Nil

func (j *Json) Nil() bool

Nil returns true if this json object is nil

func (*Json) Set

func (j *Json) Set(key string, val interface{})

Set modifies `Json` map by `key` and `value` Useful for changing single key/value in a `Json` object easily.

func (*Json) String

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

String type asserts to `string`

func (*Json) StringArray

func (j *Json) StringArray() ([]string, error)

StringArray type asserts to an `array` of `string`

func (*Json) UnmarshalJSON

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

Implements the json.Unmarshaler interface.

type Raw

type Raw = json.RawMessage

this is an alias for json.RawMessage, for clients that don't include encoding/json

Jump to

Keyboard shortcuts

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