# JSON and structured payload

**Test family:** `JSN`

- **JSN-001** Valid minimal/full payload and fields in different order produce equivalent meaning.
- **JSN-002** Missing key/null/empty/wrong primitive/array/object and unknown key follow schema.
- **JSN-003** Duplicate keys, numeric precision, exponent, huge integer, NaN/infinity representations, and negative zero are deliberate.
- **JSN-004** Empty/deep/wide/large object and array boundaries use parser/resource limits safely.
- **JSN-005** Unicode escapes, surrogate edge cases, control characters, BOM, and encoding errors do not corrupt or bypass validation.
- **JSN-006** Prototype-like keys, safe markup/template canaries, and references remain inert.
- **JSN-007** Serialization round-trip preserves semantic values and canonical/signature form where required.

## Comprehensive per-item coverage

- **JSN-008** Exercise absent, empty, ordinary, duplicate, boundary-size, over-limit, malformed, stale, and unknown values.
- **JSN-009** Use ASCII emoticons, emoji/ZWJ sequences, kaomoji, accents, mixed scripts, RTL, combining marks, confusables, and invisible characters in every textual value.
- **JSN-010** Use whitespace, tabs, newlines, delimiters, wildcards, operators, quotes, escapes, slashes, and encoded separators; parse only where the contract says.
- **JSN-011** Use inert markup, script, SQL, template, command, path, CSV-formula, header, and log-forging canaries; keep them data in every output context.
- **JSN-012** Compare UI, query string, path, JSON, form, import, API, database, cache, search index, analytics, and export representations.
- **JSN-013** Test case sensitivity, locale collation, normalization, stemming, tokenization, exact match, fuzzy match, and natural versus lexical ordering where relevant.
- **JSN-014** Create exact, case-variant, normalization-equivalent, and concurrently submitted duplicates; enforce explicit uniqueness atomically.
- **JSN-015** Change the underlying data while a query, filter, sort, grouping, or page is active; avoid omissions, duplicates, and stale totals.
- **JSN-016** Use owner, collaborator, restricted role, removed member, anonymous user, and another tenant; prevent hidden values from affecting visible counts or timing.
- **JSN-017** Deep-link, bookmark, share, refresh, duplicate the tab, navigate back/forward, and restore state; encode exactly once and reject tampering.
- **JSN-018** Import, export, copy, paste, bulk edit, migrate, and sync values; preserve identity and unknown/new values safely.
- **JSN-019** Retry after timeout, repeat the request, and operate offline/reconnected; avoid duplicate creation and silent state loss.
- **JSN-020** Use two sessions to edit definitions and applied state concurrently; expose conflicts and version decisions.
- **JSN-021** Delete, archive, restore, rename, merge, and reuse values; update references, URLs, caches, saved views, and audit coherently.
- **JSN-022** Verify keyboard operation, screen-reader labels/state/results, focus, error association, live announcements, and non-color distinctions.
- **JSN-023** Test narrow screens, zoom/reflow, long translations, RTL layout, locale changes, and unsupported glyph fonts.
- **JSN-024** Measure query, update, render, index, import, and export latency for empty, ordinary, and supported maximum datasets.
- **JSN-025** Cap expensive expressions, wildcards, nesting, fan-out, and user-controlled queries; cancel safely and protect shared capacity.
- **JSN-026** Log actor, query/definition version, target scope, old/new value, outcome, and correlation ID while redacting sensitive criteria.
- **JSN-027** Recover from partial index, cache, replica, or migration failure; detect divergence and provide reconciliation.

[Back to Search, filter, sort, group, and structured values index](../../find-organize.md)
