Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "json.h"
  2. #include <stdio.h>
  3. void json_str(FILE *f, const char *str)
  4. {
  5. int start, i;
  6. char c;
  7. fprintf(f, "\"");
  8. start = 0;
  9. i = 0;
  10. while (1)
  11. {
  12. c = str[i];
  13. if (c == '\0')
  14. {
  15. fwrite(str + start, 1, i - start, f);
  16. break;
  17. }
  18. else if (c == '\\' || c == '\"')
  19. {
  20. fwrite(str + start, 1, i - start, f);
  21. fprintf(f, "\\%c", str[i]);
  22. start = i + 1;
  23. }
  24. i += 1;
  25. }
  26. fprintf(f, "\"");
  27. }
  28. void json_sep(FILE *f)
  29. {
  30. fprintf(f, ",");
  31. }
  32. void json_obj_start(FILE *f)
  33. {
  34. fprintf(f, "{");
  35. }
  36. void json_obj_key(FILE *f, const char *key)
  37. {
  38. json_str(f, key);
  39. fprintf(f, ":");
  40. }
  41. void json_obj_end(FILE *f)
  42. {
  43. fprintf(f, "}");
  44. }
  45. void json_arr_start(FILE *f)
  46. {
  47. fprintf(f, "[");
  48. }
  49. void json_arr_end(FILE *f)
  50. {
  51. fprintf(f, "]");
  52. }