dd_json.h 753 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef DD_JSON_H
  2. #define DD_JSON_H
  3. // Tokens
  4. enum DD_JSON_TOKEN {
  5. // Objects
  6. DD_JSON_OBJECT_START,
  7. DD_JSON_OBJECT_END,
  8. DD_JSON_ARRAY_START,
  9. DD_JSON_ARRAY_END,
  10. // Data types
  11. DD_JSON_KEY,
  12. DD_JSON_STRING,
  13. DD_JSON_INT,
  14. // End of buffer
  15. DD_JSON_EOB,
  16. };
  17. #define DD_JSON_BUFFER_SIZE 255
  18. struct dd_json_object {
  19. char *str;
  20. int size;
  21. char *start;
  22. char *end;
  23. int length;
  24. char buffer[DD_JSON_BUFFER_SIZE];
  25. enum DD_JSON_TOKEN token;
  26. };
  27. void dd_json_init(struct dd_json_object *o, char *json_string, int size);
  28. void dd_json_next(struct dd_json_object *o);
  29. enum DD_JSON_TOKEN dd_json_getToken(struct dd_json_object *o);
  30. char *dd_json_getTokenString(struct dd_json_object *o);
  31. int dd_json_getTokenSize(struct dd_json_object *o);
  32. #endif