golang map[string]interface{}进行反序列化

js := `{"int":1,"string":"qwertyuiop","float":1.111}`

jsm := make(map[string]interface{})

err := json.Unmarshal([]byte(js), &jsm)

数值类型 会全部解析为 float64类型 而不会按照原来的整数int 类型

如上述代码中 key为 int 和 float 等数值类型的值,都将解析为 float64。

fork,v := range jsm {    

    switch vType := v (type) {

    case int: fmt.Println("int",k,strconv.Itoa(vType))

    case string:fmt.Println("string",k,vType)

    case float32 :fmt.Println("float32",k,strconv.FormatFloat(float64(vType),'f',2,64))

    case float64:fmt.Println("float64",k,strconv.FormatFloat(vType,'f',2,64))    

    }

}

输出为:

string string qwertyuiop

float64 float 1.11

float64 int 1.00

你可能感兴趣的:(golang map[string]interface{}进行反序列化)