json.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * File: json.h
  3. * Author: Arthur Brandao
  4. *
  5. * Created on 28 octobre 2018, 17:53
  6. */
  7. #ifndef JSON_H
  8. #define JSON_H
  9. /* --- Include --- */
  10. #include <string.h>
  11. #include "boolean.h"
  12. /* --- Constante --- */
  13. #define JSON_ERROR -1
  14. #define JSON_OK 0
  15. #define JSON_STRING 1
  16. #define JSON_NUMBER 2
  17. #define JSON_BOOLEAN 3
  18. #define JSON_ARRAY 4
  19. #define JSON_OBJECT 5
  20. /* --- Structure --- */
  21. typedef struct{
  22. char* str; //La chaine de carac json
  23. int elt; //Le nombre d'element
  24. char** key; //La position des clef dans la chaine
  25. char** val; //La position de la valeur
  26. int* key_length; //La taille des clefs
  27. int* val_length; //La taille des valeurs
  28. int* type; //Le type des valeurs
  29. }JsonParser;
  30. /* --- Fonctions ---- */
  31. int json_parse(JsonParser*, char*);
  32. char* key_index(JsonParser*, int);
  33. char* get_index(JsonParser*, int);
  34. int get_pos(JsonParser*, char*);
  35. int get_type(JsonParser*, char*);
  36. char* get_value(JsonParser*, char*);
  37. double get_number(JsonParser*, char*);
  38. int get_integer(JsonParser*, char*);
  39. boolean get_boolean(JsonParser*, char*);
  40. char* get_array(JsonParser*, char*);
  41. JsonParser* get_object(JsonParser*, char*);
  42. void clean_json_parser(JsonParser*);
  43. #endif /* JSON_H */