PHPackages                             timostamm/json-parser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. timostamm/json-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

timostamm/json-parser
=====================

Simple API to read JSON objects. Not a serializer.

v2.0.0(8mo ago)02821MITPHPPHP ^8.0CI passing

Since Oct 15Pushed 7mo ago2 watchersCompare

[ Source](https://github.com/timostamm/json-parser)[ Packagist](https://packagist.org/packages/timostamm/json-parser)[ RSS](/packages/timostamm-json-parser/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (3)Dependencies (1)Versions (5)Used By (0)

JSON parser
===========

[](#json-parser)

[![build](https://github.com/timostamm/json-parser/workflows/CI/badge.svg)](https://github.com/timostamm/json-parser/actions?query=workflow:%22CI%22)[![Packagist PHP Version](https://camo.githubusercontent.com/f887958c52ef6a777d65117dbf4d16e66e2e34c1ad2e12f50c2a2c3ef5a6ed89/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f74696d6f7374616d6d2f6a736f6e2d7061727365722f706870)](https://camo.githubusercontent.com/f887958c52ef6a777d65117dbf4d16e66e2e34c1ad2e12f50c2a2c3ef5a6ed89/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f74696d6f7374616d6d2f6a736f6e2d7061727365722f706870)[![GitHub tag](https://camo.githubusercontent.com/8911d919beacfcc299d7f0340bc2596778f5c3ee6496b02f8d3577c9edb22d3e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7461672f74696d6f7374616d6d2f6a736f6e2d7061727365723f696e636c7564655f70726572656c65617365733d26736f72743d73656d76657226636f6c6f723d626c7565)](https://github.com/timostamm/json-parser/releases/)[![License](https://camo.githubusercontent.com/d6bc2b26794002c24d023acaab01b6dbb953c57ab9cb80ba5b8aa2f2bd5de99a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c7565)](#license)

Simple API to read JSON objects. Not a serializer.

No serializer available? Tired of writing verbose code like below?

```
// json: '{"name":"hello", "tagIds":[1,2,3], "assetId": 559}'

$payload = json_decode($request->getContent(), true);
if (!is_array($payload)) {
    throw new BadRequestHttpException('Unable to parse JSON from request body.');
}

if (!array_key_exists('name', $payload)) {
    throw new \OutOfBoundsException();
}
if (!is_string($payload['name'])) {
    throw new \UnexpectedValueException();
}
$name = $payload['name'];

if (!array_key_exists('tagIds', $payload)) {
    throw new \OutOfBoundsException();
}
if (!is_array($payload['tagIds'])) {
    throw new \UnexpectedValueException();
}
$tagIds = $payload['tagIds'];

if (!array_key_exists('assetId', $payload)) {
    throw new \OutOfBoundsException();
}
if (!is_int($payload['assetId'])) {
    throw new \UnexpectedValueException();
}
$assetId = $payload['assetId'];
```

Use the slightly less terrible API provided by this library:

```
// json: '{"name":"hello", "tagIds":[1,2,3], "assetId": 559}'

$payload = JsonObject::parseFromString($request->getContent());
$name = $payload->getString('name');
$tagIds = $payload->getIntArray('tagIds');
$assetId = $payload->getInt('assetId');
```

Nested objects work as well:

```
// json: '{ "type":"parent", "children":[{"name":"peter"}] }'

$children = $payload->getArray('children');
$firstChild = $children->getObject(0);

// raises exception "Expected int value at children[0].age, but property is undefined"
$firstChild->getInt('age');
```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance62

Regular maintenance activity

Popularity13

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 63.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~720 days

Total

4

Last Release

242d ago

Major Versions

v1.1.0 → v2.0.02025-09-15

PHP version history (3 changes)v1.0.0PHP ^7.2

v1.1.0PHP ^7.2 || ^8.0

v2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6364011a12f22cb5046056371bde6170218218c560eddfdc08b4644b7648af78?d=identicon)[timostamm](/maintainers/timostamm)

---

Top Contributors

[![ducrot](https://avatars.githubusercontent.com/u/3525119?v=4)](https://github.com/ducrot "ducrot (7 commits)")[![timostamm](https://avatars.githubusercontent.com/u/4289451?v=4)](https://github.com/timostamm "timostamm (4 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/timostamm-json-parser/health.svg)

```
[![Health](https://phpackages.com/badges/timostamm-json-parser/health.svg)](https://phpackages.com/packages/timostamm-json-parser)
```

###  Alternatives

[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[opis/closure

A library that can be used to serialize closures (anonymous functions) and arbitrary data.

2.6k230.0M284](/packages/opis-closure)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)[michelf/php-markdown

PHP Markdown

3.5k52.4M345](/packages/michelf-php-markdown)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
