Skip to content

Commit

Permalink
feat: add method to jsonx (#2049)
Browse files Browse the repository at this point in the history
  • Loading branch information
vfmh committed Jul 9, 2022
1 parent f6f6ee5 commit 48f7e01
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
9 changes: 9 additions & 0 deletions core/jsonx/json.go
Expand Up @@ -53,3 +53,12 @@ func unmarshalUseNumber(decoder *json.Decoder, v interface{}) error {
func formatError(v string, err error) error {
return fmt.Errorf("string: `%s`, error: `%w`", v, err)
}

// MarshalToString marshals v into string.
func MarshalToString(v interface{}) (string, error) {
data, err := Marshal(v)
if err != nil {
return "", formatError(string(data), err)
}
return string(data), nil
}
13 changes: 13 additions & 0 deletions core/jsonx/json_test.go
Expand Up @@ -85,3 +85,16 @@ func TestUnmarshalFromReaderError(t *testing.T) {
err := UnmarshalFromReader(strings.NewReader(s), &v)
assert.NotNil(t, err)
}

func TestMarshalToString(t *testing.T) {
var v = struct {
Name string `json:"name"`
Age int `json:"age"`
}{
Name: "John",
Age: 30,
}
toString, err := MarshalToString(v)
assert.Nil(t, err)
assert.Equal(t, `{"name":"John","age":30}`, toString)
}

0 comments on commit 48f7e01

Please sign in to comment.