---
name: "bson_init_from_json"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_init_from_json"
---

# bson\_init\_from\_json(3)

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

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
