|  | @@ -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 */
 |