Commit 351ddb59 authored by 李志信's avatar 李志信

chorm: fix gosum and other format bug

parent 6e2d6a4e
...@@ -15,18 +15,20 @@ ...@@ -15,18 +15,20 @@
* limitations under the License. * limitations under the License.
*/ */
package jparser package json
import ( import (
"fmt"
"io/ioutil" "io/ioutil"
"log" "log"
"reflect" "reflect"
"strconv" "strconv"
"strings" "strings"
"time" "time"
)
import (
"github.com/buger/jsonparser" "github.com/buger/jsonparser"
perrors "github.com/pkg/errors"
) )
// HessianRegisterPair define the pair to register to hessian // HessianRegisterPair define the pair to register to hessian
...@@ -78,8 +80,12 @@ func (jsp *jsonStructParser) cb(key []byte, value []byte, dataType jsonparser.Va ...@@ -78,8 +80,12 @@ func (jsp *jsonStructParser) cb(key []byte, value []byte, dataType jsonparser.Va
case jsonparser.Object: // sub interface parse case jsonparser.Object: // sub interface parse
newParser := newJSONStructParser() newParser := newJSONStructParser()
subObj := newParser.json2Struct(value) subObj := newParser.json2Struct(value)
javaClassName, err := getJavaClassName(subObj)
if err != nil {
return err
}
jsp.hessianRegisterPair = append(jsp.hessianRegisterPair, HessianRegisterPair{ jsp.hessianRegisterPair = append(jsp.hessianRegisterPair, HessianRegisterPair{
JavaClassName: getJavaClassName(subObj), JavaClassName: javaClassName,
Obj: subObj, Obj: subObj,
}) })
jsp.structFields = append(jsp.structFields, reflect.StructField{ jsp.structFields = append(jsp.structFields, reflect.StructField{
...@@ -217,15 +223,14 @@ func (jsp *jsonStructParser) removeTargetNameField(v interface{}, targetName str ...@@ -217,15 +223,14 @@ func (jsp *jsonStructParser) removeTargetNameField(v interface{}, targetName str
return newi.Addr().Interface() return newi.Addr().Interface()
} }
func getJavaClassName(pkg interface{}) string { func getJavaClassName(pkg interface{}) (string, error) {
val := reflect.ValueOf(pkg).Elem() val := reflect.ValueOf(pkg).Elem()
typ := reflect.TypeOf(pkg).Elem() typ := reflect.TypeOf(pkg).Elem()
nums := val.NumField() nums := val.NumField()
for i := 0; i < nums; i++ { for i := 0; i < nums; i++ {
if typ.Field(i).Name == "JavaClassName" { if typ.Field(i).Name == "JavaClassName" {
return val.Field(i).String() return val.Field(i).String(), nil
} }
} }
fmt.Println("error: JavaClassName not found") return "", perrors.Errorf("JavaClassName field not found error")
return ""
} }
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
package jparser package json
import ( import (
"testing" "testing"
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
func Test_newJsonStructParser(t *testing.T) { func Test_newJsonStructParser(t *testing.T) {
path := "./user.json" path := "./user.json"
jParser := newJSONStructParser() jParser := newJSONStructParser()
_, err := jParser.JSONFilePath2Struct(path) hessianPair, _, err := jParser.jsonFilePath2Struct(path)
assert.NotEmpty(t, hessianPair)
assert.Nil(t, err) assert.Nil(t, err)
} }
github.com/apache/dubbo-go-hessian2 v1.8.0-rc1 h1:IJyHFLhJrNE5VdKtN6/0n7rJqCjHraHuORcHkZhwQyQ=
github.com/apache/dubbo-go-hessian2 v1.8.0-rc1/go.mod h1:7rEw9guWABQa6Aqb8HeZcsYPHsOS7XT1qtJvkmI6c5w=
github.com/buger/jsonparser v1.0.0 h1:etJTGF5ESxjI0Ic2UaLQs2LQQpa8G9ykQScukbh4L8A= github.com/buger/jsonparser v1.0.0 h1:etJTGF5ESxjI0Ic2UaLQs2LQQpa8G9ykQScukbh4L8A=
github.com/buger/jsonparser v1.0.0/go.mod h1:tgcrVJ81GPSF0mz+0nu1Xaz0fazGPrmmJfJtxjbHhUQ= github.com/buger/jsonparser v1.0.0/go.mod h1:tgcrVJ81GPSF0mz+0nu1Xaz0fazGPrmmJfJtxjbHhUQ=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dubbogo/gost v1.9.0/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40= github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment