mirror of
https://github.com/golang/go
synced 2024-11-19 15:44:44 -07:00
encoding/json: permit encoding uintptr as a string
Fixes #22629 Change-Id: I31e85f9faa125ee0dfd6d3c5fa89334b00d61e6e Reviewed-on: https://go-review.googlesource.com/76530 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Joe Tsai <joetsai@google.com>
This commit is contained in:
parent
65a864a628
commit
ed3d672766
@ -1194,6 +1194,7 @@ type All struct {
|
||||
Foo2 string `json:"bar2,dummyopt"`
|
||||
|
||||
IntStr int64 `json:",string"`
|
||||
UintptrStr uintptr `json:",string"`
|
||||
|
||||
PBool *bool
|
||||
PInt *int
|
||||
@ -1264,6 +1265,7 @@ var allValue = All{
|
||||
Foo: "foo",
|
||||
Foo2: "foo2",
|
||||
IntStr: 42,
|
||||
UintptrStr: 44,
|
||||
String: "16",
|
||||
Map: map[string]Small{
|
||||
"17": {Tag: "tag17"},
|
||||
@ -1326,6 +1328,7 @@ var allValueIndent = `{
|
||||
"bar": "foo",
|
||||
"bar2": "foo2",
|
||||
"IntStr": "42",
|
||||
"UintptrStr": "44",
|
||||
"PBool": null,
|
||||
"PInt": null,
|
||||
"PInt8": null,
|
||||
@ -1418,6 +1421,7 @@ var pallValueIndent = `{
|
||||
"bar": "",
|
||||
"bar2": "",
|
||||
"IntStr": "0",
|
||||
"UintptrStr": "0",
|
||||
"PBool": true,
|
||||
"PInt": 2,
|
||||
"PInt8": 3,
|
||||
|
@ -1131,7 +1131,7 @@ func typeFields(t reflect.Type) []field {
|
||||
switch ft.Kind() {
|
||||
case reflect.Bool,
|
||||
reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
|
||||
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
|
||||
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,
|
||||
reflect.Float32, reflect.Float64,
|
||||
reflect.String:
|
||||
quoted = true
|
||||
|
@ -73,12 +73,14 @@ func TestOmitEmpty(t *testing.T) {
|
||||
type StringTag struct {
|
||||
BoolStr bool `json:",string"`
|
||||
IntStr int64 `json:",string"`
|
||||
UintptrStr uintptr `json:",string"`
|
||||
StrStr string `json:",string"`
|
||||
}
|
||||
|
||||
var stringTagExpected = `{
|
||||
"BoolStr": "true",
|
||||
"IntStr": "42",
|
||||
"UintptrStr": "44",
|
||||
"StrStr": "\"xzbit\""
|
||||
}`
|
||||
|
||||
@ -86,6 +88,7 @@ func TestStringTag(t *testing.T) {
|
||||
var s StringTag
|
||||
s.BoolStr = true
|
||||
s.IntStr = 42
|
||||
s.UintptrStr = 44
|
||||
s.StrStr = "xzbit"
|
||||
got, err := MarshalIndent(&s, "", " ")
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user