- Unmarshal2Map

This commit is contained in:
gazebo
2018-11-19 20:10:22 +08:00
parent d452cdb5c6
commit 5a43ff8e20
2 changed files with 58 additions and 0 deletions

View File

@@ -45,6 +45,46 @@ type TestModel2 struct {
AddData string
}
func TestUnmarshal2Map(t *testing.T) {
jsonStr := `
{
"IntData" : 1,
"Int64Data" : 2,
"NotField" : "hello",
"StrData" : "world"
}
`
var kk TestModel
result, err := Unmarshal2Map([]byte(jsonStr), &kk)
if err != nil {
t.Fatal("Unmarshal2Map error")
}
// t.Log(result)
if _, ok := result["NotField"]; ok {
t.Fatal("NotField should not exist")
}
if result["IntData"] != 1 {
t.Fatal("IntData should equal to 1")
}
if result["Int64Data"] != int64(2) {
t.Fatal("Int64Data should equal to int64 2")
}
if result["StrData"] != "world" {
t.Fatal("StrData should equal to world")
}
jsonStr = ""
result, err = Unmarshal2Map([]byte(jsonStr), &kk)
if err == nil {
t.Fatal("Unmarshal2Map should error")
}
jsonStr = "{}"
result, err = Unmarshal2Map([]byte(jsonStr), &kk)
if err != nil {
t.Fatal("Unmarshal2Map error")
}
}
func unmarshStr(t *testing.T, jsonStr string, obj interface{}) {
err := UnmarshalUseNumber([]byte(jsonStr), obj)