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

```ts
type JsonValueInput =
  | string
  | number
  | boolean
  | null
  | JsonArrayInput
  | JsonObjectInput;
```

Defined in: [packages/common/src/Type.ts:4138](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Type.ts#L4138)

JSON-compatible input value before validation.

This is broader than [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) because inputs arrive as ordinary
JavaScript values, so numbers are typed as `number` before validation can
narrow them to [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).

That means `JsonValueInput` can temporarily contain numbers that are lossy in
JSON serialization. For example, `JSON.stringify(NaN)` and
`JSON.stringify(Infinity)` produce `null`, and `JSON.stringify(-0)` produces
`0`. Use [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) when the value must already satisfy JSON numeric
constraints.