Librairie json c++

Soyez le premier à donner votre avis sur cette source.

Vue 9 809 fois - Téléchargée 753 fois

Description

J'ai créé cette petite librairie pour décoder et encoder des fichiers JSON, avec un fichier en-tête et un fichier source seulement.

JSON est un format de fichier très léger pour stocker vos données un peu comme XML.
http://fr.wikipedia.org/wiki/JavaScript_Object_Notation

Fonctionnalités :
Accesseurs de tableaux et d'objets [].
Test des types "isBoolean", "isNumber"...
Assignation directe avec les bool, int, double, string, etc.
Ajout, insertion directe dans un tableau avec "<<" ou "push_back".
Extraction des valeurs vers les types natifs avec ">>" ou la méthode "asInt", etc.
Gestion d'exceptions.
etc.

Source / Exemple :


#include "json.h"
#include <iostream>

int main()
{
	JSONValue object;
	object = JSON::decode( " {\"menu\": { \
	   \"id\": \"file\", \
	   \"value\": \"File\", \
	   \"popup\": { \
	     \"menuitem\": [ \
	       {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"}, \
	       {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"}, \
	       {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"} \
	     ] \
	   } \
	}}" );

	object[ "menu" ][ "id" ] = "fichier";                         // Assignation
	object[ "menu" ][ "popup" ][ "menuitem" ].erase( 1 );         // Suppression dans un tableau
	object[ "menu" ][ "popup" ][ "options" ] = JSONArray();
	object[ "menu" ][ "popup" ][ "options" ] << 1 << JSON::null << 2; // Ajout dans un tableau
	object[ "menu" ][ "popup" ][ "options" ].insert( 0, "json" ); // Insertion dans un tableau
	object[ "menu" ][ "value" ] = 5;                              // Assignation avec un type différent

	std::cout << object.encode() << std::endl;
	JSON::save( object, "data.json" );
/*
	Résultat attendu :

	{"menu": {"id": "fichier", "popup": {"menuitem": [{"onclick": "CreateNewDoc()", "value": "New"}, {"onclick": "CloseDoc()", "value": "Close"}], "options": ["json", 1, null, 2]}, "value": 5}}

  • /
return 0; }

Conclusion :


Si vous avez besoin de fonctionnalités supplémentaires ou si vous avez modifié la bibliothèque pour corriger des bugs, merci de m'en informer.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Bonjour,

Moi ce que j'aimerai faire c'est implanter des objet dans un tableau.
Voila ce que j'aimerai avoir :

"SeqResult":[{"uut_num":"Test3456","channel":0,"seq_result":"P"}].

Or la valeur de uut_num est une entrée clavier, dans mon cas ça correspond à un numéro de série d'un produit.
Le probléme c'est que je n'arrive pas à insérer les objets channel,uut_num et seq_result dans un tableau en utilisant soit insert ou bien <<.


Sais tu comment je puisse faire.
Moi ce que j'aimerai faire c'est implanter des objet dans un tableau.
Voila ce que j'aimerai avoir :

"SeqResult":[{"uut_num":"Test3456","channel":0,"seq_result":"P"}].

Or la valeur de uut_num est une entrée clavier, dans mon cas ça correspond à un numéro de série d'un produit.
Le probléme c'est que je n'arrive pas à insérer les objets channel,uut_num et seq_result dans un tableau en utilisant soit insert ou bien <<.


Sais tu comment je puisse faire.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.