| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package profile
- import (
- "fmt"
- "os"
- "testing"
- cherryJson "github.com/cherry-game/cherry/extend/json"
- cherryProfile "github.com/cherry-game/cherry/profile"
- jsoniter "github.com/json-iterator/go"
- )
- func TestProfile(t *testing.T) {
- m := make(map[string]any)
- if err := cherryJson.ReadMaps("./profile.json", m); err != nil {
- t.Fatal(err)
- }
- conf := cherryProfile.Wrap(m)
- for _, key := range conf.Keys() {
- value := conf.Get(key)
- dealKV(key, value)
- }
- }
- func TestProfile2(t *testing.T) {
- json := jsoniter.ConfigFastest
- b, err := os.ReadFile("./profile.json")
- if err != nil {
- t.Fatal(err)
- }
- m := map[string]any{}
- if err = json.Unmarshal(b, &m); err != nil {
- t.Fatal(err)
- }
- conf := jsoniter.Wrap(m)
- for _, key := range conf.Keys() {
- value := conf.Get(key)
- dealKV(key, value)
- }
- }
- func dealKV(key string, value jsoniter.Any) {
- switch value.ValueType() {
- case jsoniter.ArrayValue:
- for i := 0; i < value.Size(); i++ {
- v := value.Get(i)
- dealKV(fmt.Sprintf("%s.%d", key, i), v)
- }
- case jsoniter.ObjectValue:
- for _, subKey := range value.Keys() {
- v := value.Get(subKey)
- dealKV(fmt.Sprintf("%s.%s", key, subKey), v)
- }
- case jsoniter.NumberValue:
- fmt.Printf("%s: %v\n", key, value.ToFloat64())
- default:
- fmt.Printf("%s: %v\n", key, value.ToString())
- }
- }
|