Reason About Nested JSON Schema Validation
Company: Pinterest
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Onsite
# Reason About Nested JSON Schema Validation
The preserved interview report describes two string inputs, a nested JSON schema, and a depth-first validation approach. It does not preserve the schema dialect, required-field rules, extra-property behavior, numeric semantics, or duplicate-member handling. Explain how you would recover that contract before implementation, then design the parser boundary and recursive validator for the rules the interviewer confirms.
### Constraints & Assumptions
- Both the schema and document arrive as strings containing JSON-like data.
- The exact schema language is not supplied by the preserved source and must not be silently replaced with a familiar standard.
- Duplicate object member names, number representation, recursion depth, and malformed-input behavior require explicit decisions.
- The validator should report or retain a useful failure path rather than only hiding every failure behind a Boolean during development.
### Clarifying Questions to Ask
- Which primitive, object, and array rules exist in the schema language?
- How are required fields, optional fields, and undeclared fields treated?
- Are the two strings guaranteed to be valid JSON, and how are duplicate member names handled?
- Are integer and general number types distinct, and what limits apply to nesting and input size?
```hint Separate parsing from schema traversal
First define how each string becomes an unambiguous value tree. Then let a recursive validator follow only the schema rules that were actually confirmed.
```
### What a Strong Answer Covers
- A precise list of missing contract decisions before code is written
- A standards-aware parsing boundary, including duplicate-member and numeric behavior
- Depth-first validation for the confirmed primitive, array, and object rules
- Failure paths, depth limits, complexity, and adversarial tests
- Recognition that different JSON libraries cannot be assumed equivalent on undefined inputs
### Follow-up Questions
1. How would you preserve the exact path to the first validation error?
2. What changes if recursive schemas or references are added?
3. How would you test duplicate keys without assuming the host parser's default behavior?
Quick Answer: Reason about nested JSON schema validation by fixing the schema dialect, parser edge cases, duplicate-member policy, DFS traversal, and failure paths.