package any_tests import ( "testing" "github.com/json-iterator/go" "github.com/stretchr/testify/require" ) var stringConvertMap = map[string]string{ "null": "", "321.1": "321.1", `"1.1"`: "1.1", `"-123.1"`: "-123.1", "0.0": "0.0", "0": "0", `"0"`: "0", `"0.0"`: "0.0", `"00.0"`: "00.0", "true": "true", "false": "false", `"true"`: "true", `"false"`: "false", `"true123"`: "true123", `"+1"`: "+1", "[]": "[]", "[1,2]": "[1,2]", "{}": "{}", `{"a":1, "stream":true}`: `{"a":1, "stream":true}`, } func Test_read_any_to_string(t *testing.T) { should := require.New(t) for k, v := range stringConvertMap { any := jsoniter.Get([]byte(k)) should.Equal(v, any.ToString(), "original val "+k) } } func Test_read_string_as_any(t *testing.T) { should := require.New(t) any := jsoniter.Get([]byte(`"hello"`)) should.Equal("hello", any.ToString()) should.True(any.ToBool()) any = jsoniter.Get([]byte(`" "`)) should.False(any.ToBool()) any = jsoniter.Get([]byte(`"false"`)) should.True(any.ToBool()) any = jsoniter.Get([]byte(`"123"`)) should.Equal(123, any.ToInt()) } func Test_wrap_string(t *testing.T) { should := require.New(t) any := jsoniter.Get([]byte("-32000")).MustBeValid() should.Equal(-32000, any.ToInt()) should.NoError(any.LastError()) }