bson_init_from_json (bson_t *bson,
                     const char *data,
                     ssize_t len,
                     bson_error_t *error);


  • bson: Pointer to an uninitialized bson_t.

  • data: A UTF-8 encoded string containing valid JSON.

  • len: The length of data in bytes excluding a trailing \0 or -1 to determine the length with strlen().

  • error: An optional location for a bson_error_t.


The bson_init_from_json() function will initialize a new bson_t by parsing the JSON found in data. Only a single JSON object may exist in data or an error will be set and false returned.

data should be in MongoDB Extended JSON format.

Deprecated behavior#

If there are multiple comma-separated JSONs in data, the keys from all JSONs are merged in the returned BSON. For example, {"a": 1},{"b": 2} is parsed as {"a": 1, "b": 2}.

If the first character encountered after the last valid JSON object is {, all following characters are ignored and no error is set. Otherwise, an error will be set and NULL returned.

This deprecated behavior is subject to change in a future release.


Errors are propagated via the error parameter.


Returns true if valid JSON was parsed, otherwise false and error is set. On success, bson is initialized and must be freed with bson_destroy(), otherwise bson is invalid.