网站数据修改教程,湖南seo优化按天付费,网站怎么做图片按按钮跳转,玉石电商网站建设方案在使用解析json结构体的时候#xff0c;使用interface{}接数字会发现变成了科学计数法格式的数字#xff0c;不符合实际场景的使用要求。 举例代码如下#xff1a; type JsonUnmStruct struct {Id interface{} json:idName string json:name…在使用解析json结构体的时候使用interface{}接数字会发现变成了科学计数法格式的数字不符合实际场景的使用要求。 举例代码如下 type JsonUnmStruct struct {Id interface{} json:idName string json:name
}func Test_JsonUnmErr(t *testing.T) {var b []byte({id: 12423434, Name: Tom})var f JsonUnmStructunmarshalErr : json.Unmarshal(b, f)if unmarshalErr ! nil {t.Fatal(unmarshalErr)}t.Logf(%v, f)
}
实际上的输出结果是 RUN Test_JsonUnmErr json_unm_test.go:27: {Id:1.2423434e07 Name:Tom} — PASS: Test_JsonUnmErr (0.00s) 如果想要数字以不变的方式来进行序列化/反序列化可以使用json.Decoder的UseNumber方法它会把所有的数字解析为json.Number类型的数是数字的原始字符串的表示形式 具体代码如下
func Test_JsonUnmCorrect(t *testing.T) {var b []byte({id: 12423434, Name: Tom})d : json.NewDecoder(strings.NewReader(string(b)))d.UseNumber()var f JsonUnmStructdecodeErr : d.Decode(f)if decodeErr ! nil {t.Fatal(decodeErr)}t.Logf(%v, f)
}
输出结果 RUN Test_JsonUnmCorrect json_unm_test.go:44: {Id:12423434 Name:Tom} — PASS: Test_JsonUnmCorrect (0.00s) 参考链接