44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
|
# fastjson: optimized standard library JSON for Go
|
||
|
|
||
|
`fastjson` has the same API as json from standard library `encoding/json`.
|
||
|
The `Unmarshal` and `Decode` functions are faster, but everything else is the same as `encoding/json`
|
||
|
|
||
|
## Getting Started
|
||
|
```
|
||
|
$go get github.com/intel-go/fastjson
|
||
|
```
|
||
|
##Perfomance
|
||
|
The performance depends on the content of your json structures, not the structure you parse to.
|
||
|
If `.json` has a lot of strings or numbers, fastjson is significantly faster than `encoding/json`
|
||
|
|
||
|
|
||
|
##Example
|
||
|
```Go
|
||
|
import (
|
||
|
"github.com/intel-go/fastjson"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
var jsonBlob = []byte(`[
|
||
|
{"Name": "Platypus", "Order": "Monotremata"},
|
||
|
{"Name": "Quoll", "Order": "Dasyuromorphia"}
|
||
|
]`)
|
||
|
type Animal struct {
|
||
|
Name string
|
||
|
Order string
|
||
|
}
|
||
|
var animals []Animal
|
||
|
err := fastjson.Unmarshal(jsonBlob, &animals)
|
||
|
if err != nil {
|
||
|
fmt.Println("error:", err)
|
||
|
}
|
||
|
fmt.Printf("%+v", animals)
|
||
|
// Output:
|
||
|
// [{Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia}]
|
||
|
}
|
||
|
```
|
||
|
##API
|
||
|
API is the same as encoding/json
|
||
|
[GoDoc](https://golang.org/pkg/encoding/json/#Unmarshal)
|