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

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

Defined in: [packages/common/src/Buffer.ts:296](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Buffer.ts#L296)

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.