v0.0.471 Revert "v0.0.470 Add GoextJsonMarshaller interface to call when marshalling json via gojson"
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m50s

This commit is contained in:
Mike Schwörer 2024-06-11 19:39:43 +02:00
parent 7fc73f1e93
commit f6121a6961
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
4 changed files with 2 additions and 59 deletions

View File

@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.470"
const GoextVersion = "0.0.471"
const GoextVersionTimestamp = "2024-06-11T19:34:48+0200"
const GoextVersionTimestamp = "2024-06-11T19:39:43+0200"

View File

@ -769,13 +769,6 @@ type structFields struct {
}
func (se structEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {
if v.CanAddr() && v.Addr().Type().Implements(goextJsonMarshallerType) {
if gejm, ok := v.Addr().Interface().(GoextJsonMarshaller); ok {
gejm.PreGoJsonMarshal()
}
}
next := byte('{')
FieldLoop:
for i := range se.fields.list {

View File

@ -1,13 +0,0 @@
package json
import (
"reflect"
)
type GoextJsonMarshaller interface {
PreGoJsonMarshal()
}
var (
goextJsonMarshallerType = reflect.TypeOf((*GoextJsonMarshaller)(nil)).Elem()
)

View File

@ -1,37 +0,0 @@
package json
import (
"fmt"
"testing"
)
type testStruct1 struct {
TS2 *testStruct2 `json:"ts2"`
}
type testStruct2 struct {
A string `json:"a"`
}
func (t *testStruct2) PreGoJsonMarshal() {
t.A = "Hello"
}
func TestGoextJsonMarshaller(t *testing.T) {
t1 := testStruct1{TS2: &testStruct2{}}
v, err := Marshal(t1)
if err != nil {
t.Fatal()
}
fmt.Printf("%s\n", v)
if string(v) != `{"ts2":{"a":"Hello"}}` {
t.Fatalf("PreGoJsonMarshal failed")
}
if t1.TS2.A != "Hello" {
t.Fatalf("PreGoJsonMarshal failed")
}
}