Hvordan lese og skrive ut Pretty JSON med PHP

Hvordan lese og skrive ut Pretty JSON med PHP
JSON er et populært datalagringsformat for å utveksle data mellom serveren og nettleseren. Det er avledet fra JavaScript og støttes av mange standardprogrammeringsspråk. Det er et menneskelig lesbart filformat som noen raskt forstår hvis det skriver ut med riktig formatering. JSON -datautskrifter i en enkelt linje når ingen formatering blir brukt. Men denne typen utgang er ikke lettere å forstå. Så de formaterte JSON -dataene er veldig viktig for at leseren skal forstå strukturen til dataene. Pretty Print brukes til å formatere JSON -dataene. JSON -data kan være representert i en mer lesbar form for mennesker ved å bruke ganske utskrift. Det er mange måter å bruke ganske utskrift i JSON -data. Måtene å anvende JSON Pretty-Printing ved hjelp av PHP vises i denne opplæringen gjennom forskjellige eksempler.

Forutsetninger:

Eksemplene på denne opplæringen er sjekket for PHP versjon 8+. Så du må installere php 8.0 og en Apache -server før du øver på eksemplene på denne opplæringen.

Eksempel 1: Skriv ut JSON uten formatering

JSON_ENCODE () Funksjon av PHP brukes til å analysere alle JSON -data. Lag en PHP -fil med følgende skript for å lese en enkel JSON -data og skrive ut utdataene. Her er det erklært en assosiativ matrise å generere JSON -dataene. Ingen formatering blir brukt for JSON -data i skriptet.Dermed vil JSON -data bli skrevet ut i en enkelt linje.

// erklære matrisen
$ kurs = Array ("Module-1" => "HTML", "Module-2" => "JavaScript", "Module-3" => "CSS3", "Module-4" => "PHP");
// Skriv ut matrisen i et enkelt JSON -format
ekkojson_encode ($ kurs);
?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet fra nettleseren:

Eksempel 2: Skriv ut JSON ved hjelp av JSON_PRETTY_PRINT og header ()

PHP har et alternativ som heter “JSON_PRETY_PRINT” brukt med json_encode () Funksjon for å skrive ut JSON -data med riktig justering og bestemt format. Opprett en PHP -fil med følgende skript. Her, The JSON_PRETTY_PRINT Alternativet har blitt brukt til å skrive ut JSON -dataene. Overskriften () Funksjon brukes her for å informere nettleseren om filinnholdet. Ingen formatering vil bli brukt uten denne funksjonen.

// erklære matrisen
$ kurs = Array ("Module-1" => "HTML", "Module-2" => "JavaScript", "Module-3" => "CSS3", "Module-4" => "PHP");
// varsle nettleseren om filtypen ved hjelp av toppfunksjonen
Header ('Content-Type: Text/JavaScript');
// Skriv ut matrisen i et enkelt JSON -format
Echojson_encode ($ kurs, JSON_PRETTY_PRINT);
?>

Produksjon:

Følgende utdata vises etter å ha utført det forrige skriptet fra nettleseren. En spesifikk font og justering er blitt brukt her:

Eksempel 3: Skriv ut JSON ved hjelp av JSON_PRETTY_PRINT og

 stikkord

Formateringen som brukes i forrige eksempel kan gjøres ved å bruke "<pre>”Tag i stedet for Overskrift() funksjon. Opprett en PHP -fil med følgende skript. I dette eksemplet start

 Tag brukes før generering av JSON -data.

$ data_arr = Array ('Robin Nixon' => 'Lære php, MySQL og JavaScript', 'Jon Duckett' => 'HTML & CSS: Design and Build Web Sites', 'Rob Foster' => 'Codeigniter 2 kokebok') ;
?>

ekko json_encode ($ data_arr, JSON_PRETTY_PRINT);
?>

Produksjon:

Følgende utdata vises etter å ha utført det forrige skriptet fra nettleseren. Utgangen ser ut som det forrige eksemplet, som vist nedenfor.

Eksempel 4: Skriv ut JSON ved hjelp av JSON_PRETTY_PRINT og tilpasset funksjon

Formaterte JSON -data skrives ut ved hjelp av JSON_PRETTY_PRINT Alternativ og

 Tag i de forrige eksemplene. Men hvis du vil skrive ut JSON-data med det tilpassede formatet, er det bedre å bruke den brukerdefinerte funksjonen til PHP. Dette eksemplet viser hvordan du kan bruke CSS i JSON -data ved hjelp av PHP. Opprett en PHP -fil med følgende skript. En omfattende JSON -data har blitt brukt i dette eksemplet som er lagret i variabelen, $ data. En brukerdefinert funksjon, Pretty_print () har blitt brukt i koden for å formatere JSON -dataene. Denne funksjonen har et argument som har blitt brukt til å passere JSON -dataene. EN til Loop har blitt brukt til å analysere JSON -dataene og bruke formatering før du skriver ut dataene.

// definere en stor JSON -data
$ data = '"quizbank": "datamaskin": "Q1": "Spørsmål": "Hvem er oppfinneren av datamaskinen?"," Alternativer ": [" Thomas Alva Edison "," Charlesbabbage "," Blaise Pascal "," Philo Farnsworth "]," Svar ":" Charles Babbage ", " Q2 ": " Spørsmål ":" som av følgende er en inngangsenhet?"," Alternativer ": [" skriver "," skanner "," skjerm "," tastatur "]," svar ":" tastatur "," php ": " q1 ": " spørsmål ":" hva type språk er PHP?"," Alternativer ": [" High Level Language "," Low Level Language "," ScriptingLanguage "," Assembly Language "]," Svar ":" Scripting Language "," Q2 ": " Spørsmål ":" Hva er den fulle formen for PHP?"," Alternativer ": [" Hypertext PreProcessor "," Personal Home Package "," Hypertext Processor "," Perdonal HTML Page "]," Svar ":" Hypertext Preprocessor " ';
// Ring tilpasset funksjon for formatering av JSON -data
echopretty_print ($ data);
// erklære den tilpassede funksjonen for formatering
funksjonspretty_print ($ json_data)

// Initialiser variabel for å legge til plass
$ plass = 0;
$ flagg = falsk;
//Ved hjelp av
 Tag for å formatere justering og font 
ekko"
";
// loop for å iterere hele JSON -dataene
for ($ teller = 0; $ teller
// Kontrollere slutt på andre og tredje parentes
if ($ json_data [$ counter] == '' || $ json_data [$ counter] == ']')

$ plass--;
ekko "\ n";
ECHOSTR_REPEAT (", ($ Space*2));

// Sjekk for dobbelt sitat (“) og komma (,)
if ($ json_data [$ counter] == '"' && ($ json_data [$ counter-1] == ',' || $ json_data [$ counter-2] == ','))

ekko "\ n";
ECHOSTR_REPEAT (", ($ Space*2));

if ($ json_data [$ counter] == '"' && !$ flagg)

if ($ json_data [$ counter-1] == ':' || $ json_data [$ counter-2] == ':')
// Legg til formatering for spørsmål og svar
ekko'';
ellers
// Legg til formatering for svaralternativer
ekko'';

ekko $ json_data [$ counter];
// Kontroller betingelser for å legge til lukkespenn -taggen
if ($ json_data [$ counter] == '"' && $ flagg)
ekko'';
if ($ json_data [$ counter] == '"')
$ flagg = !$ flagg;
// Sjekk fra andre og tredje parentes
if ($ json_data [$ counter] == '' || $ json_data [$ counter] == '[')

$ Space ++;
ekko "\ n";
ECHOSTR_REPEAT (", ($ Space*2));


ekko"
";

?>

Produksjon:

Følgende utdata vises etter å ha utført det forrige skriptet fra nettleseren. Her er hvert spørsmål og svar på JSON -dataene skrevet ut med blå farge og dristig format, og en annen del er skrevet ut med rød farge:

Eksempel 5: Skriv ut JSON ved hjelp av json_encode () og json_decode ()

Lag en PHP -fil med følgende skript for å kjenne måten å skrive ut JSON -dataene ved å bruke JSON_EnCode () og JSON_DECODE () -funksjonene.

// definere JSON -data i en variabel
$ jsondata = '"11897": "Megha Hossain", "11564": "Abir Hasan", "11234": "Joya Ahmed"';
// kode JSON -verdien
$ decoded_data = json_decode ($ jsondata);
Header ('Content-Type: Text/JavaScript');
// Skriv ut JSON -dataene etter avkode
ekko "Utgangen fra JSON -data: \ n";
ekko json_encode ($ decoded_data, json_resy_print);
?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet fra nettleseren:

Eksempel 6: Skriv ut innholdet i en JSON -fil ved hjelp av JSON_DECODE ()

I de forrige eksemplene er JSON -data blitt erklært i PHP -skriptet. Men innholdet i en JSON -fil kan analyseres ved å bruke PHP -skript. Lag en JSON -fil som heter studenter.JSON med følgende innhold:

studenter.JSON
[

"Id": "0111897",
"Navn": "Walliur Rahman",
"Avdeling": "CSE",
"Batch": "30."
,

"Id": "0111456",
"Navn": "Minhazkazi",
"Avdeling": "CSE",
"Batch": "30."
,

"Id": "0111897",
"Navn": "Akramasouchi",
"Avdeling": "CSE",
"Batch": "30."

]

Opprett en PHP -fil med følgende skript for å lese studenter.JSON fil ved å bruke file_get_contents () og json_decode () funksjoner. Neste, The for hver Loop har blitt brukt til å skrive ut JSON -dataene på en formatert måte.

// Les innholdet i en JSON -fil
$ studenter = file_get_contents ('studenter.json ');
// avkode JSON -dataene i en matrise
$ decoded_data = json_decode ($ studenter, true);
ekko "Id navn Departmen Batch
";
// Skriv ut JSON -dataene
foreach ($ decoded_data as $ student)
$ Id = $ student ['id'];
$ name = $ student ['name'];
$ avdeling = $ student ['avdeling'];
$ batch = $ student ['batch'];
ekko "$ id $ navn $ avdeling $ batch
";

?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet fra nettleseren:

Eksempel 7: Lese JSON -fil med tilfeldige nøkkelverdier

Innholdet i JSON-filen kan nås basert på nøkkelverdi og kreves når JSON-filen inneholder tilfeldige taster. Lag en JSON -fil som heter RandomKey.JSON med følgende innhold:

RandomKey.JSON

"7856":
"Navn": "mobil",
"Brand": "Samaung",
"Model": "J4",
"Pris": 500
,
"4320":
"Navn": "Laptop",
"Brand": "HP",
"Model": "Pavilion 15",
"Pris": 1000
,
"9067":
"Navn": "nettbrett",
"Brand": "Asus",
"Model": "CT100Pa",
"Pris": 200
,
"1675":
"Navn": "Desktop",
"Brand": "Dell",
"Model": "Ingen",
"Pris": 700

Opprett en PHP -fil med følgende skript for å lese RandomKey.JSON fil ved å bruke file_get_contents () og json_decode () funksjoner. Neste, The for hver Loop har blitt brukt til å søke i spesiell produktinformasjon basert på søkeverdien gitt i spørringsparameteren.

// Les JSON -filen
$ randomkey = file_get_contents ('randomkey.json ');
// initialiser variabelen
$ funnet = falsk;
// Konverter json -streng til matrisen
$ decoded_json = json_decode ($ randomkey, true);
// Les søkeverdien fra nettadressen
if (isset ($ _ få ['s']))
$ search_product = $ _get ['s'];
ellers

ekko "ingenting å søke";
exit;

// iterere JSON -verdien og søk på merket
foreach ($ decoded_jsonas $ k => $ v)
$ merke = $ decoded_json [$ k] ["merke"];
if ($ merke == $ search_product)

$ name = $ decoded_json [$ k] ["name"];
$ modell = $ decoded_json [$ k] ["modell"];
$ pris = $ dekodet_json [$ k] ["pris"];
$ funnet = sant;
ekko "Produktnavn: $ navn
Merke: $ merkevare
Modell: $ modell
Pris: $ pris ";


// skriv ut melding hvis søkeverdien ikke ble funnet
if ($ funnet == falsk)
ekko "produkt eksisterer ikke.";
?>

Produksjon:

Kjør forrige skript uten noen spørringsparameter:

http: // localhost/phpcode/json7.PHP

Kjør forrige skript med en spørringsparameterverdi som finnes i JSON -filen:

http: // localhost/phpcode/json7.PHP?S = HP

Kjør forrige skript med en spørringsparameterverdi som ikke eksisterer i JSON -filen:

http: // localhost/phpcode/json7.PHP?s = del

Konklusjon

De forskjellige måtene å skrive ut formaterte JSON -data ved å bruke forskjellige PHP -skript har blitt diskutert i denne opplæringen. Forhåpentligvis vil PHP -brukerne kunne formatere JSON -data og generere Pretty JSON -utdata ved hjelp av PHP -skript etter å ha øvd på eksemplene som er gitt riktig. Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og informasjon.