`JSON.stringify` and `JSON.parse` convert between objects and text. JSON has no BigInt, no undefined and no functions, so wei values must be converted to strings before sending them anywhere.
JSON.stringify({ value: 1n }); // TypeError
JSON.stringify({ value: (1n).toString() }); // {"value":"1"}JSON-RPC — the protocol every Ethereum node speaks — is exactly this: JSON objects with `method`, `params`, `id` and `jsonrpc`.