Documentation
¶
Overview ¶
Package json is a JSON parser following the specifications at http://json.org/.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ErrBadArrayEnding = errors.New("unexpected right bracket character")
ErrBadArrayEnding is returned when an unexpected right bracket is encountered.
var ErrBadComma = errors.New("unexpected comma character outside an array or object")
ErrBadComma is returned when an unexpected comma is encountered.
var ErrBadObjectDeclaration = errors.New("expected colon character after object key")
ErrBadObjectDeclaration is returned when the object key is not followed by a colon character.
var ErrBadObjectEnding = errors.New("unexpected right brace character")
ErrBadObjectEnding is returned when an unexpected right brace is encountered.
var ErrBadObjectKey = errors.New("expected object key to be a quoted string")
ErrBadObjectKey is returned when the object key is not a quoted string.
var ErrNoComma = errors.New("expected comma character or an array or object ending")
ErrNoComma is returned when no comma is present between two values.
Functions ¶
This section is empty.
Types ¶
type GrammarType ¶
type GrammarType uint32
GrammarType determines the type of grammar
const ( ErrorGrammar GrammarType = iota // extra grammar when errors occur WhitespaceGrammar LiteralGrammar NumberGrammar StringGrammar StartObjectGrammar // { EndObjectGrammar // } StartArrayGrammar // [ EndArrayGrammar // ] )
GrammarType values.
func (GrammarType) String ¶
func (gt GrammarType) String() string
String returns the string representation of a GrammarType.
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser is the state for the lexer.
func NewParser ¶
NewParser returns a new Parser for a given io.Reader.
Example ¶
p := NewParser(bytes.NewBufferString(`{"key": 5}`)) out := "" for { state := p.State() gt, data := p.Next() if gt == ErrorGrammar { break } out += string(data) if state == ObjectKeyState && gt != EndObjectGrammar { out += ":" } // not handling comma insertion } fmt.Println(out)
Output: {"key":5}
func (Parser) Err ¶
Err returns the error encountered during tokenization, this is often io.EOF but also other errors can be returned.
func (*Parser) Next ¶
func (p *Parser) Next() (GrammarType, []byte)
Next returns the next Grammar. It returns ErrorGrammar when an error was encountered. Using Err() one can retrieve the error message.