Home / Laravel / JSON Schema Deserialization in Laravel 13.14

JSON Schema Deserialization in Laravel 13.14

The Laravel team released v13.14.0 (on 06/04/2026) with a new deserializer for the JSON Schema library, fixes to how queue jobs inherit attributes, more visibility into pending jobs, and a round of HTTP client and mail fixes.

  • JsonSchema::fromArray() for rebuilding Type objects from arrays
  • Child queue properties now override inherited queue attributes
  • A queue property added to InspectedJob
  • Falsy JSON payloads cached correctly in HTTP client responses
  • Mail embed and null header fixes

What’s New

JSON Schema Array Deserialization

@pushpak1300 added JsonSchema::fromArray(), which converts a raw JSON Schema array back into a Type object. Until now the library only went one direction: you could build Type objects and serialize them to arrays. The new Deserializer mirrors the existing Serializer, so a schema received over the wire can be turned back into the objects the rest of the API expects.

$type = JsonSchema::fromArray([
'type' => 'object',
'properties' => [
'name' => ['type' => 'string', 'minLength' => 1],
'age' => ['type' => 'integer', 'minimum' => 0],
],
'required' => ['name'],
]);
// Returns an ObjectType

The two operations round-trip, so JsonSchema::fromArray() applied to a serialized type produces an equivalent type.

PR: #60384

Child Queue Properties Override Inherited Attributes

@mattiasgeniar fixed an inheritance edge case in the queue system. Previously, when a parent class declared a queue attribute such as #[Timeout(40)], a child class could not override it by redeclaring the matching property with a different value. The fix sets a clear precedence: same-class attributes still win over same-class default properties, runtime-modified properties stay prioritized, and child class properties now override queue attributes inherited from a parent.

PR: #60369

Queue Name on Inspected Jobs

@jackbayliss added a queue property to the InspectedJob class, so you can see which queue a job is assigned to when inspecting pending jobs. The property is tracked for both the database and Redis queue drivers.

PR: #60374

Falsy JSON Payloads Cached Correctly

@Button99 fixed a bug where valid falsy JSON payloads (false, 0, or null) were not cached on HTTP client responses. The fix uses a separate boolean flag to track whether decoding has happened, so a falsy decoded value is no longer mistaken for “not yet decoded” and re-decoded on each access.

PR: #60357

Mail and Header Fixes

This release also includes several fixes:

References

Source: https://laravel-news.com

Tagged:

Leave a Reply

Your email address will not be published. Required fields are marked *