Files
Go-StudyExample/example/sJson/BasicSJson_test.go
T

95 lines
2.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author : huangzj
* @Time : 2020/12/28 17:29
* @Description
*/
package sJson
import (
"fmt"
"github.com/tidwall/sjson"
"testing"
)
func TestSJsonSet(t *testing.T) {
//测试设值
const json = `{"name":{"first":"li","last":"dj"},"age":18}`
value, _ := sjson.Set(json, "name.last", "dajun")
fmt.Println(value)
}
func TestSJsonDelete(t *testing.T) {
//进行字段删除
var newValue string
user := `{"name":{"first":"li","last":"dj"},"age":18}`
newValue, _ = sjson.Delete(user, "name.first")
fmt.Println(newValue)
newValue, _ = sjson.Delete(user, "name.full")
fmt.Println(newValue)
fruits := `{"fruits":["apple", "orange", "banana"]}`
newValue, _ = sjson.Delete(fruits, "fruits.1")
fmt.Println(newValue)
newValue, _ = sjson.Delete(fruits, "fruits.-1")
fmt.Println(newValue)
newValue, _ = sjson.Delete(fruits, "fruits.5")
fmt.Println(newValue)
}
//测试操作数组,【.下标】表示替代的是哪个位置的元素,-1比较特殊是在数组后面进行添加,如果超过数组长度会自动填充 null上去,这个好像有点尴尬
func TestSJsonOperateList(t *testing.T) {
fruits := `{"fruits":["apple", "orange", "banana"]}`
var newValue string
newValue, _ = sjson.Set(fruits, "fruits.1", "grape")
fmt.Println(newValue)
newValue, _ = sjson.Set(fruits, "fruits.3", "pear")
fmt.Println(newValue)
newValue, _ = sjson.Set(fruits, "fruits.-1", "strawberry")
fmt.Println(newValue)
newValue, _ = sjson.Set(fruits, "fruits.5", "watermelon")
fmt.Println(newValue)
}
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
//测试SJson支持设置的所有类型
func TestSJsonAllType(t *testing.T) {
nilJSON, _ := sjson.Set("", "key", nil)
fmt.Println(nilJSON)
boolJSON, _ := sjson.Set("", "key", false)
fmt.Println(boolJSON)
intJSON, _ := sjson.Set("", "key", 1)
fmt.Println(intJSON)
floatJSON, _ := sjson.Set("", "key", 10.5)
fmt.Println(floatJSON)
strJSON, _ := sjson.Set("", "key", "hello")
fmt.Println(strJSON)
mapJSON, _ := sjson.Set("", "key", map[string]interface{}{"hello": "world"})
fmt.Println(mapJSON)
u := User{Name: "dj", Age: 18}
structJSON, _ := sjson.Set("", "key", u)
fmt.Println(structJSON)
}