01_from_readme.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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");
  12. jim_null(&jim);
  13. jim_member_key(&jim, "bool");
  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");
  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");
  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");
  36. jim_array_begin(&jim);
  37. jim_string(&jim, "Hello\tWorld\n");
  38. jim_string_sized(&jim, "\0\0\0\0", 4);
  39. jim_array_end(&jim);
  40. jim_object_end(&jim);
  41. if (jim.error != JIM_OK) {
  42. fprintf(stderr, "ERROR: could not serialize json properly: %s\n",
  43. jim_error_string(jim.error));
  44. return -1;
  45. }
  46. return 0;
  47. }