PHP Classes

File: README.en.md

Recommend this page to a friend!
  Classes of Alexey Starikov   PHP JSON Maker   README.en.md   Download  
File: README.en.md
Role: Example script
Content type: text/markdown
Description: Example script
Class: PHP JSON Maker
Create and edit JSON data setting class variables
Author: By
Last change: add Countable for array
Date: 5 years ago
Size: 1,851 bytes
 

Contents

Class file image Download

jsonMaker

Create JSON easy

PHP class for creating and modifying a text string in JSON format

Installation

composer require alexsuperstar/jsonmaker

Creating JSON

$a = new \alexstar\JsonMaker();
$cc='xyz';
$a->{$cc}->bbb->cccc[0]->xxx=5;
$a->{$cc}->zz='qq';
$a->xyz->zf='qq';
$a->xx->zz='qq';
echo $a; 

Result

{"xyz":{"bbb":{"cccc":[{"xxx":5}]},"zz":"qq","zf":"qq"},"xx":{"zz":"qq"}}

Editing JSON

  Original JSON

{
  "firstName": "????",
  "lastName": "??????",
  "address": {
    "streetAddress": "?????????? ?., 101, ??.101",
    "city": "?????????",
    "postalCode": 101101
  },
  "phoneNumbers": [
    "812 123-1234",
    "916 123-4567"
  ]
}

PHP code

<?php 
$loader = require_once __DIR__ . '/vendor/autoload.php';
$json = new \alexstar\JsonMaker('{"firstName":"????","lastName":"??????","address":{"streetAddress":"?????????? ?., 101, ??.101","city":"?????????","postalCode":101101},"phoneNumbers":["812 123-1234","916 123-4567"]}');
$json->firstName='???????';
$dom='???';
$json->address->{$dom}=6;
$json->address->code[]='123';
$json->address->code[]='456';
$json->phoneNumbers[2]='+7(123)1233-45-67';
unset($json->address->city,$json->phoneNumbers[0]);
echo $json;
echo 'code count: ',count($json->address->code);

Result

{
  "firstName": "???????",
  "lastName": "??????",
  "address": {
    "streetAddress": "?????????? ?., 101, ??.101",
    "postalCode": 101101,
    "???": 6,
    "code": [
      "123",
      "456"
    ]
  },
  "phoneNumbers": {
    "1": "916 123-4567",
    "2": "+7(123)1233-45-67"
  }
}
code count: 2

PS: about the use of memory, I can not say anything, like everything is transmitted by links, but I'm not sure.

Translated Google Translate