Conversion JSON en BSON, mongodb c
Question
J'ai un objet JSON moyennement complexe, stocké sous forme de char *
, que j'aimerais convertir en BSON pour le saisir dans mongodb en utilisant le "pilote" c (http://api.mongodb.org/c/0.4/bson.html).Bien que je puisse utiliser un analyseur JSON comme cJSON pour diviser l'objet en ses éléments et les ajouter individuellement à l'aide de commandes telles que bson_append_int( b, "count", 1001 );
.Je pense que la conversion pourrait et devrait être plus simple que cela (car il n'y a ni perte ni gain dans la conversion), quelqu'un connaît-il une meilleure façon de procéder ?
Je pense que je cherche quelque chose de similaire au CPP BSONObj mongo::fromjson ( const string & str )
mais je ne trouve pas la fonction c pertinente dans la documentation.
La solution
Je ne connais vraiment pas très bien le pilote C mais peut-être que ces deux fonctions pourraient aider :
bson_init_from_json
bson_new_from_json
Conversion de JSON en BSON
bson_t *b;
bson_error_t error;
b = bson_new_from_json ("{\"a\":1}", -1, &error);
if (!b) {
printf ("Error: %s\n", error.message);
} else {
bson_destroy (b);
}