/
home
/
techb158
/
balavpn.abdallabala.com
/
node_modules
/
flatted
/
golang
/
/home/techb158/balavpn.abdallabala.com/node_modules/flatted/golang
mkdir
upload
Name
Size
Mode
Actions
pkg/
-
0777
rm
README.md
1144
0666
edit
dl
rm
Edit:
/home/techb158/balavpn.abdallabala.com/node_modules/flatted/golang/README.md
(1144B)
# flatted (Go) A super light and fast circular JSON parser. ## Usage ```go package main import ( "fmt" "github.com/WebReflection/flatted/golang/pkg/flatted" ) type Group struct { Name string `json:"name"` } type User struct { Name string `json:"name"` Friend *User `json:"friend"` Group *Group `json:"group"` } func main() { group := &Group{Name: "Developers"} alice := &User{Name: "Alice", Group: group} bob := &User{Name: "Bob", Group: group} alice.Friend = bob bob.Friend = alice // Circular reference // Stringify Alice s, _ := flatted.Stringify(alice) fmt.Println(s) // Output: [{"name":"Alice","friend":"1","group":"2"},{"name":"Bob","friend":"0","group":"2"},{"name":"Developers"}] // Flattening in action: // Index "0" is Alice, Index "1" is Bob, Index "2" is the shared Group. // Parse back into a generic map structure res, _ := flatted.Parse(s) aliceMap := res.(map[string]any) fmt.Println(aliceMap["name"]) // Alice } ``` ## CLI Build the binary using the provided Makefile: ```bash make build ``` Then use it to parse flatted JSON from stdin: ```bash echo '[{"a":"1"},"b"]' | ./flatted ```
Save
cmd:
run