jsoniter_map_test.go 889 B

123456789101112131415161718192021222324252627282930313233
  1. package jsoniter
  2. import (
  3. "testing"
  4. "github.com/json-iterator/go/require"
  5. )
  6. func Test_read_map(t *testing.T) {
  7. should := require.New(t)
  8. iter := ParseString(`{"hello": "world"}`)
  9. m := map[string]string{"1": "2"}
  10. iter.ReadVal(&m)
  11. copy(iter.buf, []byte{0, 0, 0, 0, 0, 0})
  12. should.Equal(map[string]string{"1": "2", "hello": "world"}, m)
  13. }
  14. func Test_read_map_of_interface(t *testing.T) {
  15. should := require.New(t)
  16. iter := ParseString(`{"hello": "world"}`)
  17. m := map[string]interface{}{"1": "2"}
  18. iter.ReadVal(&m)
  19. should.Equal(map[string]interface{}{"1": "2", "hello": "world"}, m)
  20. iter = ParseString(`{"hello": "world"}`)
  21. should.Equal(map[string]interface{}{"hello": "world"}, iter.Read())
  22. }
  23. func Test_write_val_map(t *testing.T) {
  24. should := require.New(t)
  25. val := map[string]string{"1": "2"}
  26. str, err := MarshalToString(val)
  27. should.Nil(err)
  28. should.Equal(`{"1":"2"}`, str)
  29. }