Skip to content

Commit c0ed6ea

Browse files
authored
Merge pull request #859 from yfwz100/replace-gojson
Replace gojson
2 parents afaa2b7 + f59696b commit c0ed6ea

File tree

4 files changed

+32
-12
lines changed

4 files changed

+32
-12
lines changed

โ€Žgo.mod

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ go 1.21
55
toolchain go1.22.1
66

77
require (
8-
github.com/ChimeraCoder/gojson v1.1.0
98
github.com/akutz/memconn v0.1.0
109
github.com/alitto/pond v1.8.3
1110
github.com/apache/thrift v0.20.0
@@ -36,6 +35,7 @@ require (
3635
github.com/soheilhy/cmux v0.1.5
3736
github.com/stretchr/testify v1.8.4
3837
github.com/tinylib/msgp v1.1.9
38+
github.com/twpayne/go-jsonstruct/v3 v3.0.0
3939
github.com/valyala/fastrand v1.1.0
4040
github.com/vmihailenco/msgpack/v5 v5.3.5
4141
github.com/xtaci/kcp-go v5.4.20+incompatible
@@ -53,6 +53,8 @@ require (
5353
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 // indirect
5454
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
5555
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a // indirect
56+
github.com/fatih/camelcase v1.0.0 // indirect
57+
github.com/fatih/structtag v1.2.0 // indirect
5658
github.com/fsnotify/fsnotify v1.6.0 // indirect
5759
github.com/go-ole/go-ole v1.3.0 // indirect
5860
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
@@ -84,6 +86,5 @@ require (
8486
golang.org/x/sys v0.20.0 // indirect
8587
golang.org/x/text v0.15.0 // indirect
8688
golang.org/x/tools v0.21.0 // indirect
87-
gopkg.in/yaml.v2 v2.4.0 // indirect
8889
gopkg.in/yaml.v3 v3.0.1 // indirect
8990
)

โ€Žgo.sum

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
22
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3-
github.com/ChimeraCoder/gojson v1.1.0 h1:/6S8djl/jColpJGTYniA3xrqJWuKeyEozzPtpr5L4Pw=
4-
github.com/ChimeraCoder/gojson v1.1.0/go.mod h1:nYbTQlu6hv8PETM15J927yM0zGj3njIldp72UT1MqSw=
53
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
64
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
75
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
86
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
97
github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A=
108
github.com/akutz/memconn v0.1.0/go.mod h1:Jo8rI7m0NieZyLI5e2CDlRdRqRRB4S7Xp77ukDjH+Fw=
9+
github.com/alecthomas/assert/v2 v2.6.0 h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU=
10+
github.com/alecthomas/assert/v2 v2.6.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
11+
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
12+
github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
1113
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
1214
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
1315
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -52,11 +54,15 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
5254
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
5355
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a h1:yDWHCSQ40h88yih2JAcL6Ls/kVkSE8GFACTGVnMPruw=
5456
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40egUymuWXxAe151lTNnCv97MddSOVsjpPPkityA=
57+
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
58+
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
5559
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
5660
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
5761
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
5862
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
5963
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
64+
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
65+
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
6066
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
6167
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
6268
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
@@ -149,6 +155,8 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO
149155
github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=
150156
github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
151157
github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
158+
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
159+
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
152160
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
153161
github.com/jamiealquiza/tachymeter v2.0.0+incompatible h1:mGiF1DGo8l6vnGT8FXNNcIXht/YmjzfraiUprXYwJ6g=
154162
github.com/jamiealquiza/tachymeter v2.0.0+incompatible/go.mod h1:Ayf6zPZKEnLsc3winWEXJRkTBhdHo58HODAu1oFJkYU=
@@ -291,6 +299,8 @@ github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UD
291299
github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
292300
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
293301
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
302+
github.com/twpayne/go-jsonstruct/v3 v3.0.0 h1:qdhM8Wiq7BPwjrNRK3n1KtLt4IReiXYWUEZEfjixL0s=
303+
github.com/twpayne/go-jsonstruct/v3 v3.0.0/go.mod h1:p+c9NMNNnoc1z+FvWFUQklf0pzFaIlf03CfrLL7Lo2k=
294304
github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8=
295305
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
296306
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
@@ -450,8 +460,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
450460
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
451461
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
452462
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
453-
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
454-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
455463
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
456464
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
457465
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

โ€Žreflection/server_reflection.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import (
1212
"unicode"
1313
"unicode/utf8"
1414

15-
"github.com/ChimeraCoder/gojson"
1615
"github.com/smallnest/rpcx/log"
16+
"github.com/twpayne/go-jsonstruct/v3"
1717
)
1818

1919
var (
@@ -186,7 +186,17 @@ func generateTypeDefination(name, pkg string, jsonValue string) string {
186186
return ""
187187
}
188188
r := strings.NewReader(jsonValue)
189-
output, err := gojson.Generate(r, gojson.ParseJson, name, pkg, nil, false, true)
189+
generator := jsonstruct.NewGenerator(
190+
jsonstruct.WithPackageName(pkg),
191+
jsonstruct.WithTypeName(name),
192+
jsonstruct.WithStructTagNames(nil),
193+
jsonstruct.WithIntType("int64"),
194+
)
195+
if err := generator.ObserveJSONReader(r); err != nil {
196+
log.Errorf("failed to observe json: %v", err)
197+
return ""
198+
}
199+
output, err := generator.Generate()
190200
if err != nil {
191201
log.Errorf("failed to generate json: %v", err)
192202
return ""

โ€Žreflection/server_reflection_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,18 @@ func TestReflection_Register(t *testing.T) {
2929
}
3030

3131
type Args struct {
32-
A int
33-
B int
32+
Aa int
33+
B string
34+
C bool
3435
}
3536

3637
func Test_generateJSON(t *testing.T) {
3738
argsType := reflect.TypeOf(&Args{}).Elem()
3839
jsonData := generateJSON(argsType)
39-
assert.Equal(t, `{"A":0,"B":0}`, jsonData)
40+
assert.Equal(t, `{"Aa":0,"B":"","C":false}`, jsonData)
4041

4142
def := generateTypeDefination("Args", "test", jsonData)
4243

43-
result := "type Args struct {\n\tA int64 \n\tB int64 \n}\n"
44+
result := "type Args struct {\n\tAa int64 \n\tB string \n\tC bool \n}\n"
4445
assert.Equal(t, result, def)
4546
}

0 commit comments

Comments
ย (0)