jsoniter_demo_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package jsoniter
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func Test_bind_api_demo(t *testing.T) {
  7. iter := ParseString(`[0,1,2,3]`)
  8. val := []int{}
  9. iter.ReadVal(&val)
  10. fmt.Println(val[3])
  11. }
  12. func Test_iterator_api_demo(t *testing.T) {
  13. iter := ParseString(`[0,1,2,3]`)
  14. total := 0
  15. for iter.ReadArray() {
  16. total += iter.ReadInt()
  17. }
  18. fmt.Println(total)
  19. }
  20. type User struct {
  21. userID int
  22. name string
  23. tags []string
  24. }
  25. func Test_iterator_and_bind_api(t *testing.T) {
  26. iter := ParseString(`[123, {"name": "taowen", "tags": ["crazy", "hacker"]}]`)
  27. user := User{}
  28. iter.ReadArray()
  29. user.userID = iter.ReadInt()
  30. iter.ReadArray()
  31. iter.ReadVal(&user)
  32. iter.ReadArray() // array end
  33. fmt.Println(user)
  34. }
  35. type TaskBidLog struct {
  36. age int
  37. }
  38. func Test2(t *testing.T) {
  39. rawString :=`
  40. {"id":0,"bidId":"bid01492692440885","impId":"imp0","taskId":"1024","bidPrice":80,"winPrice":0,"isWon":0,"createTime":1492692440885,"updateTime":null,"device":"","age":30,"gender":"","location":"[中国, 山西, , ]","conType":"0","os":"iOS","osv":"","brand":"","geo":"","ip":"1.68.4.193","idfa":"","waxUserid":""}`
  41. var log TaskBidLog
  42. err := UnmarshalFromString(rawString, &log)
  43. fmt.Println(err)
  44. fmt.Println(log.age)
  45. }