github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/json/test/json_object_test.go (about) 1 package test 2 3 import ( 4 "fmt" 5 "github.com/isyscore/isc-gobase/json" 6 "github.com/magiconair/properties/assert" 7 "testing" 8 ) 9 10 //{ 11 // "k1":12, 12 // "k2":true, 13 // "k3":{ 14 // "k31":32, 15 // "k32":"str", 16 // "k33":{ 17 // "k331":12 18 // } 19 // } 20 //} 21 var str = "{\n \"k1\":12,\n \"k2\":true,\n \"k3\":{\n \"k31\":32,\n \"k32\":\"str\",\n \"k33\":{\n \"k331\":12\n }\n }\n}" 22 23 func TestLoad(t *testing.T) { 24 jsonData := json.Object{} 25 err := jsonData.Load(str) 26 if err != nil { 27 fmt.Println(err.Error()) 28 return 29 } 30 31 assert.Equal(t, jsonData.Get("k1"), 12) 32 assert.Equal(t, jsonData.Get("k2"), true) 33 assert.Equal(t, jsonData.Get("k3.k31"), 32) 34 assert.Equal(t, jsonData.Get("k3.k32"), "str") 35 assert.Equal(t, jsonData.Get("k3.k33.k331"), 12) 36 } 37 38 func TestPut1(t *testing.T) { 39 jsonObject := json.Object{} 40 err := jsonObject.Load(str) 41 if err != nil { 42 fmt.Println(err.Error()) 43 return 44 } 45 46 jsonObject.Put("k1", 13) 47 jsonObject.Put("k2", false) 48 jsonObject.Put("k3.k31", 33) 49 jsonObject.Put("k3.k32", "str-change") 50 jsonObject.Put("k3.k33.k331", 134) 51 52 assert.Equal(t, jsonObject.Get("k1"), 13) 53 assert.Equal(t, jsonObject.Get("k2"), false) 54 assert.Equal(t, jsonObject.Get("k3.k31"), 33) 55 assert.Equal(t, jsonObject.Get("k3.k32"), "str-change") 56 assert.Equal(t, jsonObject.Get("k3.k33.k331"), 134) 57 } 58 59 func TestPut2(t *testing.T) { 60 jsonObject := json.Object{} 61 str := "{\n \"test\":12,\n \"ok\":\"haode\",\n \"k1\":{\n \"k2\":true,\n \"k21\":{\n \"k3\":43,\n \"k3array\":[\n 1,\n 2,\n 3,\n 4\n ]\n }\n }\n}" 62 err := jsonObject.Load(str) 63 if err != nil { 64 fmt.Println(err.Error()) 65 return 66 } 67 68 jsonObject.Put("k1.k3", "value1") 69 assert.Equal(t, jsonObject.Get("k1.k3"), "value1") 70 } 71 72 func TestPut3(t *testing.T) { 73 jsonObject := json.Object{} 74 str := "{\n \"test\":12,\n \"ok\":\"haode\",\n \"k1\":{\n \"k2\":true,\n \"k21\":{\n \"k3\":43,\n \"k3array\":[\n 1,\n 2,\n 3,\n 4\n ]\n }\n }\n}" 75 err := jsonObject.Load(str) 76 if err != nil { 77 fmt.Println(err.Error()) 78 return 79 } 80 81 jsonObject.Put("k1.k4.k41", "value41") 82 assert.Equal(t, jsonObject.Get("k1.k4.k41"), "value41") 83 } 84 85 func TestPut4(t *testing.T) { 86 jsonObject := json.Object{} 87 str := "{\n \"intValue\":12,\n \"intValue8\":12,\n \"intValue16\":12,\n \"intValue32\":12,\n \"intValue64\":12,\n \"stringValue\":\"haode\",\n \"boolValue\":false,\n \"objectValue\":{\n \"field1\":true,\n \"field2Struct\":{\n \"f21\":43,\n \"k2array\":[\n 1,\n 2,\n 3,\n 4\n ]\n }\n }\n}" 88 err := jsonObject.Load(str) 89 if err != nil { 90 fmt.Println(err.Error()) 91 return 92 } 93 94 assert.Equal(t, jsonObject.GetInt("intValue"), 12) 95 assert.Equal(t, jsonObject.GetInt8("intValue"), int8(12)) 96 assert.Equal(t, jsonObject.GetInt16("intValue"), int16(12)) 97 assert.Equal(t, jsonObject.GetInt32("intValue"), int32(12)) 98 assert.Equal(t, jsonObject.GetInt64("intValue"), int64(12)) 99 100 assert.Equal(t, jsonObject.GetString("stringValue"), "haode") 101 assert.Equal(t, jsonObject.GetBool("boolValue"), false) 102 assert.Equal(t, jsonObject.GetBool("objectValue.field1"), true) 103 assert.Equal(t, jsonObject.GetInt("objectValue.field2Struct.f21"), 43) 104 105 testEntity := TestEntity{} 106 _ = jsonObject.GetObject("objectValue", &testEntity) 107 108 fmt.Println(testEntity) 109 } 110 111 type TestEntity struct { 112 Field1 bool 113 Field2Struct TestEntity2 114 } 115 116 type TestEntity2 struct { 117 F21 int 118 K2array []int 119 }