@@ -37,7 +37,9 @@ type FastMarshalValue struct {
3737 Value * Value
3838}
3939
40- func (mv FastMarshalValue ) MarshalJSONTo (enc * jsontext.Encoder ) error {
40+ var _ json.MarshalerTo = FastMarshalValue {}
41+
42+ func (mv FastMarshalValue ) MarshalJSONTo (enc * jsontext.Encoder , _ jsontext.Options ) error {
4143 return valueMarshalJSONTo (enc , * mv .Value )
4244}
4345
@@ -54,7 +56,7 @@ func valueMarshalJSONTo(enc *jsontext.Encoder, v Value) error {
5456 case v .IsBool ():
5557 return enc .WriteToken (jsontext .Bool (v .AsBool ()))
5658 case v .IsList ():
57- if err := enc .WriteToken (jsontext .BeginArray ); err != nil {
59+ if err := enc .WriteToken (jsontext .ArrayStart ); err != nil {
5860 return err
5961 }
6062 list := v .AsList ()
@@ -63,9 +65,9 @@ func valueMarshalJSONTo(enc *jsontext.Encoder, v Value) error {
6365 return err
6466 }
6567 }
66- return enc .WriteToken (jsontext .EndArray )
68+ return enc .WriteToken (jsontext .ArrayEnd )
6769 case v .IsMap ():
68- if err := enc .WriteToken (jsontext .BeginObject ); err != nil {
70+ if err := enc .WriteToken (jsontext .ObjectStart ); err != nil {
6971 return err
7072 }
7173 var iterErr error
@@ -83,7 +85,7 @@ func valueMarshalJSONTo(enc *jsontext.Encoder, v Value) error {
8385 if iterErr != nil {
8486 return iterErr
8587 }
86- return enc .WriteToken (jsontext .EndObject )
88+ return enc .WriteToken (jsontext .ObjectEnd )
8789 default :
8890 return json .MarshalEncode (enc , v .Unstructured (), json .Deterministic (true ))
8991 }
@@ -93,8 +95,11 @@ func valueMarshalJSONTo(enc *jsontext.Encoder, v Value) error {
9395// have a different name.
9496type FieldList []Field
9597
96- func (fl * FieldList ) MarshalJSONTo (enc * jsontext.Encoder ) error {
97- enc .WriteToken (jsontext .BeginObject )
98+ var _ json.MarshalerTo = (* FieldList )(nil )
99+ var _ json.UnmarshalerFrom = (* FieldList )(nil )
100+
101+ func (fl * FieldList ) MarshalJSONTo (enc * jsontext.Encoder , _ jsontext.Options ) error {
102+ enc .WriteToken (jsontext .ObjectStart )
98103 for _ , f := range * fl {
99104 if err := enc .WriteToken (jsontext .String (f .Name )); err != nil {
100105 return err
@@ -103,22 +108,22 @@ func (fl *FieldList) MarshalJSONTo(enc *jsontext.Encoder) error {
103108 return err
104109 }
105110 }
106- enc .WriteToken (jsontext .EndObject )
111+ enc .WriteToken (jsontext .ObjectEnd )
107112
108113 return nil
109114}
110115
111116// FieldListFromJSON is a helper function for reading a JSON document.
112- func (fl * FieldList ) UnmarshalJSONFrom (parser * jsontext.Decoder ) error {
117+ func (fl * FieldList ) UnmarshalJSONFrom (parser * jsontext.Decoder , _ jsontext. Options ) error {
113118 if objStart , err := parser .ReadToken (); err != nil {
114119 return fmt .Errorf ("parsing JSON: %v" , err )
115- } else if objStart .Kind () != jsontext .BeginObject .Kind () {
120+ } else if objStart .Kind () != jsontext .ObjectStart .Kind () {
116121 return fmt .Errorf ("expected object" )
117122 }
118123
119124 var fields FieldList
120125 for {
121- if parser .PeekKind () == jsontext .EndObject .Kind () {
126+ if parser .PeekKind () == jsontext .ObjectEnd .Kind () {
122127 if _ , err := parser .ReadToken (); err != nil {
123128 return fmt .Errorf ("parsing JSON: %v" , err )
124129 }
0 commit comments