Download the PHP package phpgt/json without Composer
On this page you can find all versions of the php package phpgt/json. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package json
Short Description Structured, type-safe, immutable JSON objects.
License MIT
Informations about the package json
Structured, type-safe, immutable JSON objects.
Built on top of PHP.Gt/DataObject, this repository adds JSON-specific compatibility. The main usage will be via the JsonObjectBuilder
class that can be used to build a type of JsonObject
from a JSON string or decoded JSON object (from json_decode
).
The purpose of using these classes to represent decoded JSON data is to provide a type-safe, immutable interface to the enclosed data.
The abstract JsonObject
class extends the DataObject
base class to represent the root element of a JSON object. In JSON, this may not necessarily be a key-value-pair object.
The following JSON strings can all be successfully decoded:
{"type": "key-value-pair"}
- a typical key-value-pair object[{"name": "first"}, {"name": "second"}
- an array of objects0
- an integer1.05
- a floating pointfalse
- a boolean"Today is going to be a good day"
- a stringnull
- a null
Because of this, the base DataObject
would be unable to represent the different types of scalar value in a type-safe way. The JsonObjectBuilder
class returns a new instance of the abstract JsonObject
class which is one of the following types:
JsonKvpObject
- identical features toDataObject
with type-safe getters for its keysJsonPrimitive
- a representation of the primitive value, further broken down into typesJsonArrayPrimitive
,JsonBoolPrimitive
,JsonFloatPrimitive
,JsonIntPrimitive
,JsonNullPrimitive
andJsonStringPrimitive
.
Usage example
Fetch API
Check out the PHP implementation of the Fetch API that uses this library to work with JSON endpoints asynchronously.
All versions of json with dependencies
ext-json Version *
phpgt/dataobject Version ^1.1
justinrainbow/json-schema Version ^6.1