example.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <stdio.h>
  2. #define JIM_IMPLEMENTATION
  3. #include "./jim.h"
  4. int main()
  5. {
  6. Jim jim = {
  7. .sink = stdout,
  8. .write = (Jim_Write) fwrite,
  9. };
  10. jim_object_begin(&jim);
  11. jim_member_key(&jim, "null", NULL);
  12. jim_null(&jim);
  13. jim_member_key(&jim, "bool", NULL);
  14. jim_array_begin(&jim);
  15. jim_bool(&jim, 0);
  16. jim_bool(&jim, 1);
  17. jim_array_end(&jim);
  18. jim_member_key(&jim, "integers", NULL);
  19. jim_array_begin(&jim);
  20. for (int i = -3; i <= 3; ++i) {
  21. jim_integer(&jim, i);
  22. }
  23. jim_array_end(&jim);
  24. jim_member_key(&jim, "floats", NULL);
  25. jim_array_begin(&jim);
  26. jim_float(&jim, 0.0, 4);
  27. jim_float(&jim, -0.0, 4);
  28. jim_float(&jim, 3.1415, 4);
  29. jim_float(&jim, 2.71828, 5);
  30. jim_float(&jim, 1.6180, 4);
  31. jim_float(&jim, 0.0 / 0.0, 4);
  32. jim_float(&jim, 1.0 / 0.0, 4);
  33. jim_float(&jim, -1.0 / 0.0, 4);
  34. jim_array_end(&jim);
  35. jim_member_key(&jim, "string", NULL);
  36. jim_array_begin(&jim);
  37. jim_string(&jim, "Hello\tWorld\n", NULL);
  38. unsigned int size = 4;
  39. jim_string(&jim, "\0\0\0\0", &size);
  40. jim_array_end(&jim);
  41. jim_object_end(&jim);
  42. if (jim.error != JIM_OK) {
  43. fprintf(stderr, "ERROR: could not serialize json properly: %s\n",
  44. jim_error_string(jim.error));
  45. return -1;
  46. }
  47. return 0;
  48. }