Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
Toggle table of contents sidebar

# bson_init_from_json()

## Synopsis

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

## Parameters

- `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.

## Description

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

Errors are propagated via the `error` parameter.

## Returns

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.

See also

bson_concat()
bson_init()
bson_init_from_json()
bson_init_static()
bson_new()
bson_new_from_buffer()
bson_new_from_data()
bson_new_from_json()
bson_reinit()
bson_reserve_buffer()
bson_sized_new()

See also

bson_init_from_json()
bson_json_reader_read()
bson_new_from_json()