[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Bytes](https://evolu.dev/docs/api-reference/common/Bytes) › encodeJsonValue

```ts
function encodeJsonValue(buffer: Buffer, value: JsonValue): void;
```

Defined in: [packages/common/src/Bytes.ts:555](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Bytes.ts#L555)

Encodes a [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) using the MessagePack format.

### Example

```ts
import {
  assertEqual,
  createBuffer,
  encodeJsonValue,
  JsonValue,
} from "@evolu/common";

const buffer = createBuffer();
const value = JsonValue.orThrow({ name: "Ada" });

encodeJsonValue(buffer, value);

assertEqual(
  buffer.unwrap(),
  new Uint8Array([0x81, 0xa4, 0x6e, 0x61, 0x6d, 0x65, 0xa3, 0x41, 0x64, 0x61]),
);
```

Encoding is artificially limited to 1,000 nested arrays or objects to keep
recursive encoding and decoding safe and symmetric. JSON data should not
require such depth; flatten or split deeply nested data, or use a
purpose-built serialization format.