---
name: "bson_new_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_new_from_json"
---

# bson\_new\_from\_json(3)

## SYNOPSIS

```
bson_t *
bson_new_from_json (const uint8_t *data, ssize_t len, bson_error_t *error);
```

## PARAMETERS

- •

  **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\_new\_from\_json()** function allocates and initializes 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 NULL returned.

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

Errors are propagated via the **error** parameter.

## RETURNS

A newly allocated *bson\_t* if successful, otherwise NULL and **error** is set.

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
