fastjson: github.com/valyala/fastjson Index | Examples | Files | Directories

package fastjson

import "github.com/valyala/fastjson"

Package fastjson provides fast JSON parsing.

Arbitrary JSON may be parsed by fastjson without the need for creating structs or for generating go code. Just parse JSON and get the required fields with Get* functions.

Index

Examples

Package Files

arena.go doc.go handy.go parser.go pool.go scanner.go update.go util.go validate.go

Constants

const MaxDepth = 300

MaxDepth is the maximum depth for nested JSON.

func Exists Uses

func Exists(data []byte, keys ...string) bool

Exists returns true if the field identified by keys path exists in JSON data.

Array indexes may be represented as decimal numbers in keys.

False is returned on error. Use Parser for proper error handling.

Parser is faster when multiple fields must be checked in the JSON.

Code:

data := []byte(`{"foo": [1.23,{"bar":33,"baz":null}]}`)

fmt.Printf("exists(data.foo) = %v\n", fastjson.Exists(data, "foo"))
fmt.Printf("exists(data.foo[0]) = %v\n", fastjson.Exists(data, "foo", "0"))
fmt.Printf("exists(data.foo[1].baz) = %v\n", fastjson.Exists(data, "foo", "1", "baz"))
fmt.Printf("exists(data.foobar) = %v\n", fastjson.Exists(data, "foobar"))
fmt.Printf("exists(data.foo.bar) = %v\n", fastjson.Exists(data, "foo", "bar"))

Output:

exists(data.foo) = true
exists(data.foo[0]) = true
exists(data.foo[1].baz) = true
exists(data.foobar) = false
exists(data.foo.bar) = false

func GetBool Uses

func GetBool(data []byte, keys ...string) bool

GetBool returns boolean value for the field identified by keys path in JSON data.

Array indexes may be represented as decimal numbers in keys.

False is returned on error. Use Parser for proper error handling.

Parser is faster for obtaining multiple fields from JSON.

func GetBytes Uses

func GetBytes(data []byte, keys ...string) []byte

GetBytes returns string value for the field identified by keys path in JSON data.

Array indexes may be represented as decimal numbers in keys.

nil is returned on error. Use Parser for proper error handling.

Parser is faster for obtaining multiple fields from JSON.

func GetFloat64 Uses

func GetFloat64(data []byte, keys ...string) float64

GetFloat64 returns float64 value for the field identified by keys path in JSON data.

Array indexes may be represented as decimal numbers in keys.

0 is returned on error. Use Parser for proper error handling.

Parser is faster for obtaining multiple fields from JSON.

func GetInt Uses

func GetInt(data []byte, keys ...string) int

GetInt returns int value for the field identified by keys path in JSON data.

Array indexes may be represented as decimal numbers in keys.

0 is returned on error. Use Parser for proper error handling.

Parser is faster for obtaining multiple fields from JSON.

Code:

data := []byte(`{"foo": [233,true, {"bar": [2343]} ]}`)

n1 := fastjson.GetInt(data, "foo", "0")
fmt.Printf("data.foo[0] = %d\n", n1)

n2 := fastjson.GetInt(data, "foo", "2", "bar", "0")
fmt.Printf("data.foo[2].bar[0] = %d\n", n2)

Output:

data.foo[0] = 233
data.foo[2].bar[0] = 2343

func GetString Uses

func GetString(data []byte, keys ...string) string

GetString returns string value for the field identified by keys path in JSON data.

Array indexes may be represented as decimal numbers in keys.

An empty string is returned on error. Use Parser for proper error handling.

Parser is faster for obtaining multiple fields from JSON.

Code:

data := []byte(`{"foo":{"bar":[123,"baz"]}}`)

s := fastjson.GetString(data, "foo", "bar", "1")
fmt.Printf("data.foo.bar[1] = %s", s)

Output:

data.foo.bar[1] = baz

func Validate Uses

func Validate(s string) error

Validate validates JSON s.

func ValidateBytes Uses

func ValidateBytes(b []byte) error

ValidateBytes validates JSON b.

type Arena Uses

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

Arena may be used for fast creation and re-use of Values.

Typical Arena lifecycle:

1) Construct Values via the Arena and Value.Set* calls.
2) Marshal the constructed Values with Value.MarshalTo call.
3) Reset all the constructed Values at once by Arena.Reset call.
4) Go to 1 and re-use the Arena.

It is unsafe calling Arena methods from concurrent goroutines. Use per-goroutine Arenas or ArenaPool instead.

func (*Arena) NewArray Uses

func (a *Arena) NewArray() *Value

NewArray returns new empty array value.

New entries may be added to the returned array via Set* calls.

The returned array is valid until Reset is called on a.

func (*Arena) NewFalse Uses

func (a *Arena) NewFalse() *Value

NewFalse return false value.

func (*Arena) NewNull Uses

func (a *Arena) NewNull() *Value

NewNull returns null value.

func (*Arena) NewNumberFloat64 Uses

func (a *Arena) NewNumberFloat64(f float64) *Value

NewNumberFloat64 returns new number value containing f.

The returned number is valid until Reset is called on a.

func (*Arena) NewNumberInt Uses

func (a *Arena) NewNumberInt(n int) *Value

NewNumberInt returns new number value containing n.

The returned number is valid until Reset is called on a.

func (*Arena) NewNumberString Uses

func (a *Arena) NewNumberString(s string) *Value

NewNumberString returns new number value containing s.

The returned number is valid until Reset is called on a.

func (*Arena) NewObject Uses

func (a *Arena) NewObject() *Value

NewObject returns new empty object value.

New entries may be added to the returned object via Set call.

The returned object is valid until Reset is called on a.

func (*Arena) NewString Uses

func (a *Arena) NewString(s string) *Value

NewString returns new string value containing s.

The returned string is valid until Reset is called on a.

func (*Arena) NewStringBytes Uses

func (a *Arena) NewStringBytes(b []byte) *Value

NewStringBytes returns new string value containing b.

The returned string is valid until Reset is called on a.

func (*Arena) NewTrue Uses

func (a *Arena) NewTrue() *Value

NewTrue returns true value.

func (*Arena) Reset Uses

func (a *Arena) Reset()

Reset resets all the Values allocated by a.

Values previously allocated by a cannot be used after the Reset call.

type ArenaPool Uses

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

ArenaPool may be used for pooling Arenas for similarly typed JSONs.

func (*ArenaPool) Get Uses

func (ap *ArenaPool) Get() *Arena

Get returns an Arena from ap.

The Arena must be Put to ap after use.

func (*ArenaPool) Put Uses

func (ap *ArenaPool) Put(a *Arena)

Put returns a to ap.

a and objects created by a cannot be used after a is put into ap.

type Object Uses

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

Object represents JSON object.

Object cannot be used from concurrent goroutines. Use per-goroutine parsers or ParserPool instead.

func (*Object) Del Uses

func (o *Object) Del(key string)

Del deletes the entry with the given key from o.

Code:

v := fastjson.MustParse(`{"foo": 123, "bar": [1,2], "baz": "xyz"}`)
o, err := v.Object()
if err != nil {
    log.Fatalf("cannot otain object: %s", err)
}
fmt.Printf("%s\n", o)

o.Del("bar")
fmt.Printf("%s\n", o)

o.Del("foo")
fmt.Printf("%s\n", o)

o.Del("baz")
fmt.Printf("%s\n", o)

Output:

{"foo":123,"bar":[1,2],"baz":"xyz"}
{"foo":123,"baz":"xyz"}
{"baz":"xyz"}
{}

func (*Object) Get Uses

func (o *Object) Get(key string) *Value

Get returns the value for the given key in the o.

Returns nil if the value for the given key isn't found.

The returned value is valid until Parse is called on the Parser returned o.

func (*Object) Len Uses

func (o *Object) Len() int

Len returns the number of items in the o.

func (*Object) MarshalTo Uses

func (o *Object) MarshalTo(dst []byte) []byte

MarshalTo appends marshaled o to dst and returns the result.

func (*Object) Set Uses

func (o *Object) Set(key string, value *Value)

Set sets (key, value) entry in the o.

The value must be unchanged during o lifetime.

func (*Object) String Uses

func (o *Object) String() string

String returns string representation for the o.

This function is for debugging purposes only. It isn't optimized for speed. See MarshalTo instead.

func (*Object) Visit Uses

func (o *Object) Visit(f func(key []byte, v *Value))

Visit calls f for each item in the o in the original order of the parsed JSON.

f cannot hold key and/or v after returning.

Code:

s := `{
		"obj": { "foo": 1234 },
		"arr": [ 23,4, "bar" ],
		"str": "foobar"
	}`

var p fastjson.Parser
v, err := p.Parse(s)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}
o, err := v.Object()
if err != nil {
    log.Fatalf("cannot obtain object from json value: %s", err)
}

o.Visit(func(k []byte, v *fastjson.Value) {
    switch string(k) {
    case "obj":
        fmt.Printf("object %s\n", v)
    case "arr":
        fmt.Printf("array %s\n", v)
    case "str":
        fmt.Printf("string %s\n", v)
    }
})

Output:

object {"foo":1234}
array [23,4,"bar"]
string "foobar"

type Parser Uses

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

Parser parses JSON.

Parser may be re-used for subsequent parsing.

Parser cannot be used from concurrent goroutines. Use per-goroutine parsers or ParserPool instead.

func (*Parser) Parse Uses

func (p *Parser) Parse(s string) (*Value, error)

Parse parses s containing JSON.

The returned value is valid until the next call to Parse*.

Use Scanner if a stream of JSON values must be parsed.

Code:

var p fastjson.Parser
v, err := p.Parse(`{"foo":"bar", "baz": 123}`)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}

fmt.Printf("foo=%s, baz=%d", v.GetStringBytes("foo"), v.GetInt("baz"))

Output:

foo=bar, baz=123

Code:

var p fastjson.Parser

// p may be re-used for parsing multiple json strings.
// This improves parsing speed by reducing the number
// of memory allocations.
//
// Parse call invalidates all the objects previously obtained from p,
// so don't hold these objects after parsing the next json.

for i := 0; i < 3; i++ {
    s := fmt.Sprintf(`["foo_%d","bar_%d","%d"]`, i, i, i)
    v, err := p.Parse(s)
    if err != nil {
        log.Fatalf("cannot parse json: %s", err)
    }
    key := strconv.Itoa(i)
    fmt.Printf("a[%d]=%s\n", i, v.GetStringBytes(key))
}

Output:

a[0]=foo_0
a[1]=bar_1
a[2]=2

func (*Parser) ParseBytes Uses

func (p *Parser) ParseBytes(b []byte) (*Value, error)

ParseBytes parses b containing JSON.

The returned Value is valid until the next call to Parse*.

Use Scanner if a stream of JSON values must be parsed.

type ParserPool Uses

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

ParserPool may be used for pooling Parsers for similarly typed JSONs.

func (*ParserPool) Get Uses

func (pp *ParserPool) Get() *Parser

Get returns a Parser from pp.

The Parser must be Put to pp after use.

func (*ParserPool) Put Uses

func (pp *ParserPool) Put(p *Parser)

Put returns p to pp.

p and objects recursively returned from p cannot be used after p is put into pp.

type Scanner Uses

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

Scanner scans a series of JSON values. Values may be delimited by whitespace.

Scanner may parse JSON lines ( http://jsonlines.org/ ).

Scanner may be re-used for subsequent parsing.

Scanner cannot be used from concurrent goroutines.

Use Parser for parsing only a single JSON value.

Code:

var sc fastjson.Scanner

sc.Init(`   {"foo":  "bar"  }[  ]
		12345"xyz" true false null    `)

for sc.Next() {
    fmt.Printf("%s\n", sc.Value())
}
if err := sc.Error(); err != nil {
    log.Fatalf("unexpected error: %s", err)
}

Output:

{"foo":"bar"}
[]
12345
"xyz"
true
false
null

Code:

var sc fastjson.Scanner

// The sc may be re-used in order to reduce the number
// of memory allocations.
for i := 0; i < 3; i++ {
    s := fmt.Sprintf(`[%d] "%d"`, i, i)
    sc.Init(s)
    for sc.Next() {
        fmt.Printf("%s,", sc.Value())
    }
    if err := sc.Error(); err != nil {
        log.Fatalf("unexpected error: %s", err)
    }
    fmt.Printf("\n")
}

Output:

[0],"0",
[1],"1",
[2],"2",

func (*Scanner) Error Uses

func (sc *Scanner) Error() error

Error returns the last error.

func (*Scanner) Init Uses

func (sc *Scanner) Init(s string)

Init initializes sc with the given s.

s may contain multiple JSON values, which may be delimited by whitespace.

func (*Scanner) InitBytes Uses

func (sc *Scanner) InitBytes(b []byte)

InitBytes initializes sc with the given b.

b may contain multiple JSON values, which may be delimited by whitespace.

func (*Scanner) Next Uses

func (sc *Scanner) Next() bool

Next parses the next JSON value from s passed to Init.

Returns true on success. The parsed value is available via Value call.

Returns false either on error or on the end of s. Call Error in order to determine the cause of the returned false.

func (*Scanner) Value Uses

func (sc *Scanner) Value() *Value

Value returns the last parsed value.

The value is valid until the Next call.

type Type Uses

type Type int

Type represents JSON type.

const (
    // TypeNull is JSON null.
    TypeNull Type = 0

    // TypeObject is JSON object type.
    TypeObject Type = 1

    // TypeArray is JSON array type.
    TypeArray Type = 2

    // TypeString is JSON string type.
    TypeString Type = 3

    // TypeNumber is JSON number type.
    TypeNumber Type = 4

    // TypeTrue is JSON true.
    TypeTrue Type = 5

    // TypeFalse is JSON false.
    TypeFalse Type = 6
)

func (Type) String Uses

func (t Type) String() string

String returns string representation of t.

type Value Uses

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

Value represents any JSON value.

Call Type in order to determine the actual type of the JSON value.

Value cannot be used from concurrent goroutines. Use per-goroutine parsers or ParserPool instead.

func MustParse Uses

func MustParse(s string) *Value

MustParse parses json string s.

The function panics if s cannot be parsed. The function is slower than the Parser.Parse for re-used Parser.

func MustParseBytes Uses

func MustParseBytes(b []byte) *Value

MustParseBytes parses b containing json.

The function panics if b cannot be parsed. The function is slower than the Parser.ParseBytes for re-used Parser.

func Parse Uses

func Parse(s string) (*Value, error)

Parse parses json string s.

The function is slower than the Parser.Parse for re-used Parser.

func ParseBytes Uses

func ParseBytes(b []byte) (*Value, error)

ParseBytes parses b containing json.

The function is slower than the Parser.ParseBytes for re-used Parser.

func (*Value) Array Uses

func (v *Value) Array() ([]*Value, error)

Array returns the underlying JSON array for the v.

The returned array is valid until Parse is called on the Parser returned v.

Use GetArray if you don't need error handling.

func (*Value) Bool Uses

func (v *Value) Bool() (bool, error)

Bool returns the underlying JSON bool for the v.

Use GetBool if you don't need error handling.

func (*Value) Del Uses

func (v *Value) Del(key string)

Del deletes the entry with the given key from array or object v.

Code:

v := fastjson.MustParse(`{"foo": 123, "bar": [1,2], "baz": "xyz"}`)
fmt.Printf("%s\n", v)

v.Del("foo")
fmt.Printf("%s\n", v)

v.Get("bar").Del("0")
fmt.Printf("%s\n", v)

Output:

{"foo":123,"bar":[1,2],"baz":"xyz"}
{"bar":[1,2],"baz":"xyz"}
{"bar":[2],"baz":"xyz"}

func (*Value) Exists Uses

func (v *Value) Exists(keys ...string) bool

Exists returns true if the field exists for the given keys path.

Array indexes may be represented as decimal numbers in keys.

func (*Value) Float64 Uses

func (v *Value) Float64() (float64, error)

Float64 returns the underlying JSON number for the v.

Use GetFloat64 if you don't need error handling.

func (*Value) Get Uses

func (v *Value) Get(keys ...string) *Value

Get returns value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

nil is returned for non-existing keys path.

The returned value is valid until Parse is called on the Parser returned v.

Code:

s := `{"foo":[{"bar":{"baz":123,"x":"434"},"y":[]},[null, false]],"qwe":true}`
var p fastjson.Parser
v, err := p.Parse(s)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}

vv := v.Get("foo", "0", "bar", "x")
fmt.Printf("foo[0].bar.x=%s\n", vv.GetStringBytes())

vv = v.Get("qwe")
fmt.Printf("qwe=%v\n", vv.GetBool())

vv = v.Get("foo", "1")
fmt.Printf("foo[1]=%s\n", vv)

vv = v.Get("foo").Get("1").Get("1")
fmt.Printf("foo[1][1]=%s\n", vv)

// non-existing key
vv = v.Get("foo").Get("bar").Get("baz", "1234")
fmt.Printf("foo.bar.baz[1234]=%v\n", vv)

Output:

foo[0].bar.x=434
qwe=true
foo[1]=[null,false]
foo[1][1]=false
foo.bar.baz[1234]=<nil>

func (*Value) GetArray Uses

func (v *Value) GetArray(keys ...string) []*Value

GetArray returns array value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

nil is returned for non-existing keys path or for invalid value type.

The returned array is valid until Parse is called on the Parser returned v.

func (*Value) GetBool Uses

func (v *Value) GetBool(keys ...string) bool

GetBool returns bool value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

false is returned for non-existing keys path or for invalid value type.

func (*Value) GetFloat64 Uses

func (v *Value) GetFloat64(keys ...string) float64

GetFloat64 returns float64 value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

0 is returned for non-existing keys path or for invalid value type.

func (*Value) GetInt Uses

func (v *Value) GetInt(keys ...string) int

GetInt returns int value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

0 is returned for non-existing keys path or for invalid value type.

func (*Value) GetInt64 Uses

func (v *Value) GetInt64(keys ...string) int64

GetInt64 returns int64 value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

0 is returned for non-existing keys path or for invalid value type.

func (*Value) GetObject Uses

func (v *Value) GetObject(keys ...string) *Object

GetObject returns object value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

nil is returned for non-existing keys path or for invalid value type.

The returned object is valid until Parse is called on the Parser returned v.

func (*Value) GetStringBytes Uses

func (v *Value) GetStringBytes(keys ...string) []byte

GetStringBytes returns string value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

nil is returned for non-existing keys path or for invalid value type.

The returned string is valid until Parse is called on the Parser returned v.

Code:

s := `[
		{"foo": "bar"},
		[123, "baz"]
	]`

var p fastjson.Parser
v, err := p.Parse(s)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}
fmt.Printf("v[0].foo = %q\n", v.GetStringBytes("0", "foo"))
fmt.Printf("v[1][1] = %q\n", v.GetStringBytes("1", "1"))
fmt.Printf("v[1][0] = %q\n", v.GetStringBytes("1", "0"))
fmt.Printf("v.foo.bar.baz = %q\n", v.GetStringBytes("foo", "bar", "baz"))

Output:

v[0].foo = "bar"
v[1][1] = "baz"
v[1][0] = ""
v.foo.bar.baz = ""

func (*Value) GetUint Uses

func (v *Value) GetUint(keys ...string) uint

GetUint returns uint value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

0 is returned for non-existing keys path or for invalid value type.

func (*Value) GetUint64 Uses

func (v *Value) GetUint64(keys ...string) uint64

GetUint64 returns uint64 value by the given keys path.

Array indexes may be represented as decimal numbers in keys.

0 is returned for non-existing keys path or for invalid value type.

func (*Value) Int Uses

func (v *Value) Int() (int, error)

Int returns the underlying JSON int for the v.

Use GetInt if you don't need error handling.

func (*Value) Int64 Uses

func (v *Value) Int64() (int64, error)

Int64 returns the underlying JSON int64 for the v.

Use GetInt64 if you don't need error handling.

func (*Value) MarshalTo Uses

func (v *Value) MarshalTo(dst []byte) []byte

MarshalTo appends marshaled v to dst and returns the result.

Code:

s := `{
		"name": "John",
		"items": [
			{
				"key": "foo",
				"value": 123.456,
				"arr": [1, "foo"]
			},
			{
				"key": "bar",
				"field": [3, 4, 5]
			}
		]
	}`
var p fastjson.Parser
v, err := p.Parse(s)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}

// Marshal items.0 into newly allocated buffer.
buf := v.Get("items", "0").MarshalTo(nil)
fmt.Printf("items.0 = %s\n", buf)

// Re-use buf for marshaling items.1.
buf = v.Get("items", "1").MarshalTo(buf[:0])
fmt.Printf("items.1 = %s\n", buf)

Output:

items.0 = {"key":"foo","value":123.456,"arr":[1,"foo"]}
items.1 = {"key":"bar","field":[3,4,5]}

func (*Value) Object Uses

func (v *Value) Object() (*Object, error)

Object returns the underlying JSON object for the v.

The returned object is valid until Parse is called on the Parser returned v.

Use GetObject if you don't need error handling.

func (*Value) Set Uses

func (v *Value) Set(key string, value *Value)

Set sets (key, value) entry in the array or object v.

The value must be unchanged during v lifetime.

Code:

v := fastjson.MustParse(`{"foo":1,"bar":[2,3]}`)

// Replace `foo` value with "xyz"
v.Set("foo", fastjson.MustParse(`"xyz"`))
// Add "newv":123
v.Set("newv", fastjson.MustParse(`123`))
fmt.Printf("%s\n", v)

// Replace `bar.1` with {"x":"y"}
v.Get("bar").Set("1", fastjson.MustParse(`{"x":"y"}`))
// Add `bar.3="qwe"
v.Get("bar").Set("3", fastjson.MustParse(`"qwe"`))
fmt.Printf("%s\n", v)

Output:

{"foo":"xyz","bar":[2,3],"newv":123}
{"foo":"xyz","bar":[2,{"x":"y"},null,"qwe"],"newv":123}

func (*Value) SetArrayItem Uses

func (v *Value) SetArrayItem(idx int, value *Value)

SetArrayItem sets the value in the array v at idx position.

The value must be unchanged during v lifetime.

func (*Value) String Uses

func (v *Value) String() string

String returns string representation of the v.

The function is for debugging purposes only. It isn't optimized for speed. See MarshalTo instead.

Don't confuse this function with StringBytes, which must be called for obtaining the underlying JSON string for the v.

func (*Value) StringBytes Uses

func (v *Value) StringBytes() ([]byte, error)

StringBytes returns the underlying JSON string for the v.

The returned string is valid until Parse is called on the Parser returned v.

Use GetStringBytes if you don't need error handling.

func (*Value) Type Uses

func (v *Value) Type() Type

Type returns the type of the v.

Code:

s := `{
		"object": {},
		"array": [],
		"string": "foobar",
		"number": 123.456,
		"true": true,
		"false": false,
		"null": null
	}`

var p fastjson.Parser
v, err := p.Parse(s)
if err != nil {
    log.Fatalf("cannot parse json: %s", err)
}

fmt.Printf("%s\n", v.Get("object").Type())
fmt.Printf("%s\n", v.Get("array").Type())
fmt.Printf("%s\n", v.Get("string").Type())
fmt.Printf("%s\n", v.Get("number").Type())
fmt.Printf("%s\n", v.Get("true").Type())
fmt.Printf("%s\n", v.Get("false").Type())
fmt.Printf("%s\n", v.Get("null").Type())

Output:

object
array
string
number
true
false
null

func (*Value) Uint Uses

func (v *Value) Uint() (uint, error)

Uint returns the underlying JSON uint for the v.

Use GetInt if you don't need error handling.

func (*Value) Uint64 Uses

func (v *Value) Uint64() (uint64, error)

Uint64 returns the underlying JSON uint64 for the v.

Use GetInt64 if you don't need error handling.

Directories

PathSynopsis
fastfloat

Package fastjson imports 9 packages (graph) and is imported by 32 packages. Updated 2020-08-05. Refresh now. Tools for package owners.