Documentation
¶
Index ¶
Examples ¶
Constants ¶
View Source
const ( EntityTypeInvalid = iota EntityTypeString EntityTypeObject EntityTypeArray EntityTypeNumber EntityTypeBooleanTrue EntityTypeBooleanFalse EntityTypeNull )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BooleanDec ¶
type EntityType ¶
type EntityType uint8
func GuessNextEntityType ¶
func GuessNextEntityType(data []byte, i int) EntityType
type Pos ¶
func ScanObject ¶
ScanObject according to the spec at http://www.json.org/ but ignoring nested objects and arrays
Example ¶
package main
import (
"fmt"
"github.com/calebglawson/flatjson"
)
func main() {
data := []byte(`{
"hello":["world"],
"bonjour": {"le": "monde"}
}`)
_, _, _ = flatjson.ScanObject(data, 0, &flatjson.Callbacks{
MaxDepth: 99,
OnNumber: func(prefixes flatjson.Prefixes, val flatjson.Number) {
fmt.Printf("path=%s\n", prefixes.AsString(data))
if val.Name.IsObjectKey() {
fmt.Printf("key=%s\n", val.Name.String(data))
} else {
fmt.Printf("index=%d\n", val.Name.Index())
}
fmt.Printf("value=%f\n", val.Value)
},
OnString: func(prefixes flatjson.Prefixes, val flatjson.String) {
fmt.Printf("path=%s\n", prefixes.AsString(data))
if val.Name.IsObjectKey() {
fmt.Printf("key=%s\n", val.Name.String(data))
} else {
fmt.Printf("index=%d\n", val.Name.Index())
}
fmt.Printf("value=%q\n", val.Value.String(data))
},
OnBoolean: func(prefixes flatjson.Prefixes, val flatjson.Bool) {
fmt.Printf("path=%s\n", prefixes.AsString(data))
if val.Name.IsObjectKey() {
fmt.Printf("key=%s\n", val.Name.String(data))
} else {
fmt.Printf("index=%d\n", val.Name.Index())
}
fmt.Printf("value=%v\n", val.Value)
},
OnNull: func(prefixes flatjson.Prefixes, val flatjson.Null) {
fmt.Printf("path=%s\n", prefixes.AsString(data))
if val.Name.IsObjectKey() {
fmt.Printf("key=%s\n", val.Name.String(data))
} else {
fmt.Printf("index=%d\n", val.Name.Index())
}
fmt.Printf("NULL!")
},
})
}
Output: path=hello index=0 value="\"world\"" path=bonjour key="le" value="\"monde\""
type Prefix ¶
type Prefix struct {
// contains filtered or unexported fields
}
func (Prefix) IsArrayIndex ¶
func (Prefix) IsObjectKey ¶
type SyntaxError ¶
type SyntaxError struct {
Offset int
Message string
SubErr *SyntaxError
}
func (*SyntaxError) Error ¶
func (s *SyntaxError) Error() string
Click to show internal directories.
Click to hide internal directories.