|
@@ -2,7 +2,7 @@
|
|
|
* File: json.h
|
|
|
* Author: Arthur Brandao
|
|
|
*
|
|
|
- * Created on 28 octobre 2018, 17:53
|
|
|
+ * Created on 28 octobre 2018
|
|
|
*/
|
|
|
#ifndef JSON_H
|
|
|
#define JSON_H
|
|
@@ -32,17 +32,100 @@ typedef struct{
|
|
|
}JsonParser;
|
|
|
|
|
|
/* --- Fonctions ---- */
|
|
|
+
|
|
|
+/**
|
|
|
+ * Parse une chaine JSON en JsonParser
|
|
|
+ * Initialise ou écrase les données du JsonParser
|
|
|
+ * @param JsonParser* La structure de resultat (doit être alloué)
|
|
|
+ * @param char* La chaine en JSON
|
|
|
+ * @return int JSON_ERROR en cas d'erreur sinon JSON_OK
|
|
|
+ */
|
|
|
int json_parse(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Donne la clef à un index donné
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param int La position à regarder
|
|
|
+ * @return char* La clef
|
|
|
+ */
|
|
|
char* key_index(JsonParser*, int);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Donne la valeur à un index donné
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param int La position à regarder
|
|
|
+ * @return char* La valeur
|
|
|
+ */
|
|
|
char* get_index(JsonParser*, int);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Donne la positon d'une valeur dans le JsonParser
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return int La position
|
|
|
+ */
|
|
|
int get_pos(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne le type de la vl=aleur
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return int constante JSON_XXXX du type de la valeur
|
|
|
+ */
|
|
|
int get_type(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return char* La valeur, NULL en cas d'erreur (clef introuvable)
|
|
|
+ */
|
|
|
char* get_value(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element de type number
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return double La valeur, JSON_ERROR en cas d'erreur (type incorrect, clef introuvable)
|
|
|
+ */
|
|
|
double get_number(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element de type number
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return int La valeur, JSON_ERROR en cas d'erreur (type incorrect, clef introuvable)
|
|
|
+ */
|
|
|
int get_integer(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element de type boolean
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return boolean La valeur, false en cas d'erreur (type incorrect, clef introuvable)
|
|
|
+ */
|
|
|
boolean get_boolean(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element de type array
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return char* La valeur, NULL en cas d'erreur (type incorrect, clef introuvable)
|
|
|
+ */
|
|
|
char* get_array(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Retourne la valeur d'un element de type object
|
|
|
+ * @param JsonParser* Le resultat de json_parse
|
|
|
+ * @param char* La clef lié à la valeur
|
|
|
+ * @return JsonParser* L'object json analysé, NULL en cas d'erreur (type incorrect, clef introuvable, ...)
|
|
|
+ */
|
|
|
JsonParser* get_object(JsonParser*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Supprime un JsonParser
|
|
|
+ * @param JsonParser* Le JsonParser à supprimer
|
|
|
+ */
|
|
|
void clean_json_parser(JsonParser*);
|
|
|
|
|
|
#endif /* JSON_H */
|