PHP JSON_DECODE -funksjonen

PHP JSON_DECODE -funksjonen
PHP har to innebygde funksjoner for å jobbe med JSON-dataene. Disse er json_encode () og json_decode () funksjoner. JSON_EnCode () -funksjonen brukes til å kode JSON -data og JSON_DECODE () -funksjonen brukes til å avkode de kodede JSON -dataene. Denne funksjonen oppretter et PHP -objekt fra et JSON -objekt. De forskjellige bruken av JSON_DECODE () -funksjonen vises i denne opplæringen.

Syntaks:
Blandet JSON_DECODE (String $ json, bool $ assosiativ = null, int $ dybde = 512, int $ flagg = 0)

Denne funksjonen har fire argumenter. Det første argumentet er obligatorisk og de andre argumentene er valgfrie. Formålene med disse argumentene er beskrevet i følgende:

  • $ JSON: Den inneholder JSON-dataene som er dekodet, og den støtter bare UTF-8-kodet streng.
  • $ assosiert: den inneholder en boolsk verdi. Hvis verdien av dette argumentet er satt til sant, returnerer funksjonen et assosiativt utvalg av JSON -objektet. Hvis verdien av dette argumentet er satt til usant, returnerer funksjonen et objekt.
  • $ Dybde: Det brukes til å definere den nestede dybden i strukturen som er dekodet. Verdien av dette argumentet er mellom 1 til 2147483647.
  • $ flagg: Den inneholder bitmasken til JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.

Den kodede JSON -verdien av PHP -typen returneres av denne funksjonen hvis de kodede dataene er innenfor nestede dybde. Ellers returnerer funksjonen null.

Ulike eksempler på json_encode () -funksjon

De forskjellige bruken av JSON_Encode () -funksjonen vises i denne delen av opplæringen ved hjelp av flere eksempler.

Eksempel 1: Konverter enkle JSON -data til en PHP -matrise

Lag en PHP -fil med følgende skript som konverterer JSON -objektet til et PHP -objekt og en PHP -matrise ved hjelp av JSON_DECODE0 -funksjonen. Når JSON_DECODE () -funksjonen brukes med ett argument, konverteres JSON -objektet til et PHP -objekt. Når JSON_DECODE () -funksjonen brukes med de to første argumentene, konverteres JSON -objektet til en PHP -matrise. Et JSON -objekt med enkle JSON -data om fem egenskaper brukes i dette eksemplet.

// erklære en enkel JSON -streng
$ jsondata = '"01": "Book", "02": "Pen", "03": "Pencil", "04": "Rular", "05": "Paper"';
// avkode JSON -dataene i et PHP -objekt
ekko "De dekodede JSON -dataene som objekt:
";
print_r (json_decode ($ jsondata));
// avkode JSON -dataene i en PHP -matrise
ekko "
De dekodede JSON -dataene som assosiativ matrise:
";
print_r (json_decode ($ jsondata, true));
?>

Produksjon:

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

Eksempel 2: Skriv ut JSON -eiendomsnavn og verdier

Lag en PHP -fil med følgende skript som konverterer JSON -objektet til en PHP -matrise ved hjelp av JSON_DECODE0 -funksjonen. Et JSON -objekt med enkle JSON -data om fem egenskaper brukes i dette eksemplet. Neste, “for hver”Loop brukes til å lese og skrive ut tastene og verdiene til PHP -matrisen.

// erklære en enkel JSON -streng
$ produkttypes = '"T01": "HDD", "T02": "Monitor", "T03": "Mouse", "T04": "Printer", "T05": "Keyboard"';
// avkode JSON -dataene i en PHP -matrise
$ phParray = json_decode ($ produkttypes, true);
ekko " ID produktnavn
";
// Skriv ut elementene i den assosiative matrisen ved hjelp av loopen
Foreach ($ phparray som $ indeks => $ verdi)

ekko $ indeks."".$ verdi.""
";

?>

Produksjon:

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

Eksempel 3: Søk i den aktuelle JSON -egenskapen

Opprett en PHP -fil med følgende skript som konverterer JSON -objektet til en PHP -matrise, og den aktuelle ID -verdien vil bli søkt i matrisen. Hvis verdien eksisterer i matrisen, skrives de tilsvarende andre verdiene. Her er søke -ID -verdien hentet fra URL -parameteren.

// erklære et JSON -objekt på mer enn en dybde
$ customerdata = '[
"Id": "056345", "Navn": "Mira Hossain", "E -post": "[email protected] "," contact_no ":"+8801954532367 ",
"Id": "056335", "Navn": "Mohammed Abir", "E -post": "[email protected] "," contact_no ":"+8801858722209 ",
"Id": "056387", "Navn": "Alif Chowdhury", "E -post": "[email protected] "," contact_no ":"+8801700785321 ",
"Id": "056391", "Navn": "Nipa Roy", "E -post": "[email protected] "," contact_no ":"+880180006342 ",
"Id": "056395", "Navn": "Anam Ali", "E -post": "[email protected] "," contact_no ":"+880159126543 "
] ';
// Opprett PHP -matrisen av JSON -dataene
$ custarray = json_decode ($ customerdata, true);
// Sjekk søke -IDen er gitt i nettadressen eller ikke
if (isset ($ _ få ['src']))

// Les søke -IDen fra nettadressen
$ searchId = $ _get ['src'];
$ funnet = falsk;
// Skriv ut kundeinformasjonen til den aktuelle IDen hvis det finnes i matrisen
for ($ indeks = 0; $ indeks < count($custArray); $index++)
if ($ custarray [$ index] ["id"] == $ searchId)
ekko " Kundens detaljer:
";
ekko "Navn:".$ custarray [$ index] ["name"].""
";
Ekko "E -post:".$ custarray [$ index] ["E -post"].""
";
ekko "Kontakt nr:".$ custarray [$ index] ["contact_no"].""
";
$ funnet = sant;
gå i stykker;


if ($ funnet == falsk)
ekko "Kunde -ID eksisterer ikke.";

ellers
ekko "søke -ID er ikke gitt.""
?>

Produksjon:

Følgende utdata vises etter å ha utført det forrige skriptet hvis det ikke er gitt noen ID -verdi i URLen:

Følgende utgang vises etter å ha utført det forrige skriptet hvis ID -verdien som er gitt i URL -en eksisterer i PHP -matrisen som er generert fra JSON -objektet:

Følgende utgang vises etter å ha utført det forrige skriptet hvis ID -verdien som er gitt i nettadressen ikke eksisterer i PHP -matrisen som er generert fra JSON -objektet:

Eksempel 4: Generer feil for feil JSON -objekt

Opprett en PHP -fil med følgende skript som viser en feil på tidspunktet for å konvertere JSON -objektet til et PHP -objekt hvis JSON -objektet inneholder noen feil. JSON -objektet som brukes i dette eksemplet inneholder en feil i verdien av den andre egenskapen. Dobbeltsitatet (“) mangler for eiendomsverdien,“Penn”.

// erklære en enkel JSON -streng
$ jSondata = '"01": "Book", "02": Pen "," 03 ":" Pencil "," 04 ":" Rular "," 05 ":" Paper "';
// avkode JSON -dataene i et PHP -objekt
ekko "De dekodede JSON -dataene som objekt:
";
print_r (json_decode ($ jsondata));
// Skriv ut feilen Nei og feilmelding hvis det eksisterer
ekko "Feil nr: "".json_last_error ().""
""."Feilmelding: "".json_last_error_msg ().""";
?>
?>

Produksjon:

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

Konklusjon

De forskjellige måtene å analysere JSON -dataene ved å bruke JSON_DECODE () -funksjonen er forklart i denne opplæringen ved hjelp av enkle eksempler. Vi håper at formålet med å bruke JSON_DECODE () -funksjonen blir fjernet for PHP -brukerne etter å ha lest denne opplæringen.