01_from_readme.c 1.4 KB

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