Konversi json ke array php

Tutorial ini mencakup detail dasar fungsi json_encode PHP. Ini memberikan contoh decoding input string JSON ke array PHP

Ini juga menjelaskan konvensi, aturan, dan batasan fungsi JSON PHP ini. Pertama, mari kita lihat contoh cepat mengonversi JSON menjadi array

Konversikan JSON ke Array PHP

Contoh ini memiliki string JSON yang memetakan hewan dengan hitungannya. Output dari konversi JSON ini akan mengembalikan array asosiatif

Ia menggunakan PHP json_decode() dengan boolean true sebagai parameter keduanya. Dengan parameter decoding ini, JSON akan diubah menjadi array PHP

Contoh cepat


Keluaran

array(4) {
  ["Lion"]=>
  int(101)
  ["Tiger"]=>
  int(102)
  ["Crocodile"]=>
  int(103)
  ["Elephant"]=>
  int(104)
}
_

Lihat demo online ini untuk mendapatkan hasil array yang dikonversi dari input JSON
Lihat demo

Lihat diagram yang menunjukkan input string JSON dan objek output stdClass dari decoding JSON. Pada artikel sebelumnya, kita telah melihat contoh operasi kebalikan yang mengonversi array PHP menjadi string JSON

Konversi json ke array php

PHP json_decode()

Fungsi PHP asli ini menerjemahkan string JSON menjadi pohon objek yang dapat diurai atau larik. Ini adalah sintaks dari fungsi ini

json_decode(
    string $json,
    ?bool $associative = null,
    int $depth = 512,
    int $flags = 0
): mixed
  1. $json – Masukkan string JSON
  2. $associative – boolean berdasarkan mana format output bervariasi antara array asosiatif dan objek stdClass
  3. $depth – batas bersarang yang diizinkan
  4. $flag – Menentukan konstanta untuk mengaktifkan fitur seperti penanganan pengecualian selama konversi JSON ke array

Anda dapat menemukan lebih banyak tentang fungsi ini di dokumentasi resmi online

Konversikan JSON ke Objek PHP

Program ini memiliki sedikit perubahan karena tidak menyetel flag boolean ke fungsi json_decode PHP. Ini akan mengembalikan pohon objek stdClass PHP alih-alih array

name;
?>

Keluaran

Lion
_

Kesalahan umum selama konversi dari JSON ke Array

String JSON berikut adalah objek JSON yang valid di JavaScript, tetapi tidak di sini di PHP. Masalahnya adalah kutipan tunggal. Itu harus diubah menjadi kutipan ganda

Jika Anda ingin melihat contoh JavaScript untuk membaca dan menampilkan data JSON, artikel tertaut memiliki kodenya


Cara mengonversi JSON dengan bilangan bulat besar

Ini dapat dicapai dengan mengatur parameter bitmask dari konstanta JSON yang telah ditentukan sebelumnya

Konstanta JSON_BIGINT_AS_STRING digunakan untuk mengonversi JSON dengan data yang memiliki bilangan bulat besar


Keluaran

object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890123"
}

Cara mendapatkan kesalahan saat menggunakan json_decode

Fungsi json_last_error() digunakan untuk mengembalikan detail tentang kejadian kesalahan terakhir. Contoh berikut menangani kemungkinan kasus error dari fungsi PHP JSON ini


KEJUTAN. Konversi JSON ke Array dan Array ke JSON tidak simetris


Keluaran

array(4) {
  ["Lion"]=>
  int(101)
  ["Tiger"]=>
  int(102)
  ["Crocodile"]=>
  int(103)
  ["Elephant"]=>
  int(104)
}
_0

Objek PHP sekarang diubah menjadi array PHP. Anda mungkin tidak mengharapkannya

array(4) {
  ["Lion"]=>
  int(101)
  ["Tiger"]=>
  int(102)
  ["Crocodile"]=>
  int(103)
  ["Elephant"]=>
  int(104)
}
_1

Di atas tidak akan mengembalikan data ke bentuk aslinya

Keluaran decoding ke array PHP dan pengkodean dari array PHP tidak selalu simetris. Tapi, keluaran decoding dari objek stdClass dan encoding ke objek stdClass selalu simetris

Jadi jika Anda memiliki rencana untuk melakukan konversi siklis antara array PHP dan string JSON, pertama-tama konversikan array PHP ke objek. Konversi JSON

Ini adalah JavaScript pada klien, menggunakan panggilan AJAX untuk meminta file PHP dari contoh di atas

Contoh

Gunakan JSON. parse() untuk mengonversi hasilnya menjadi objek JavaScript

const xmlhttp = new XMLHttpRequest();
xmlhttp. memuat = fungsi() {
const myObj = JSON. mengurai (ini. responseText);
dokumen. getElementById("demo"). innerHTML = myObj. nama;
}
xmlhttp. buka("DAPATKAN", "file_demo. php");
xmlhttp. mengirim();

Cobalah sendiri "



Susunan PHP

Array di PHP juga akan diubah menjadi JSON saat menggunakan fungsi PHP json_encode()

berkas PHP

$myArr = array("John", "Mary", "Peter", "Sally");

$myJSON = json_encode($myArr);

gema $myJSON;
?>

Tampilkan file PHP »

JavaScript Klien

Ini adalah JavaScript pada klien, menggunakan panggilan AJAX untuk meminta file PHP dari contoh array di atas

Contoh

Gunakan JSON. parse() untuk mengonversi hasilnya menjadi larik JavaScript

var xmlhttp = XMLHttpRequest baru();
xmlhttp. memuat = fungsi() {
const myObj = JSON. mengurai (ini. responseText);
dokumen. getElementById("demo"). innerHTML = myObj[2];
}
xmlhttp. buka("DAPATKAN", "demo_file_array. php", benar);
xmlhttp. mengirim();

Cobalah sendiri "


Basis Data PHP

PHP adalah bahasa pemrograman sisi server, dan dapat digunakan untuk mengakses database

Bayangkan Anda memiliki database di server Anda, dan Anda ingin mengirim permintaan ke sana dari klien tempat Anda meminta 10 baris pertama dalam tabel yang disebut "pelanggan"

Di klien, buat objek JSON yang menjelaskan jumlah baris yang ingin Anda kembalikan

Sebelum Anda mengirim permintaan ke server, ubah objek JSON menjadi string dan kirimkan sebagai parameter ke url halaman PHP

Bagaimana cara mengubah data JSON menjadi array di PHP?

Untuk mengonversi string data JSON ke larik PHP, Anda dapat menggunakan fungsi json_decode($json) . Fungsi json_decode() menerima string JSON sebagai parameter pertama dan beberapa parameter tambahan untuk mengontrol proses konversi JSON ke array PHP.

Bagaimana cara mengonversi objek JSON menjadi array?

Pendekatan 1. Pertama-tama konversikan string JSON ke objek JavaScript menggunakan JSON. Parse() metode dan kemudian ambil nilai objek dan dorong mereka ke dalam array menggunakan metode push() .

Bagaimana cara mendapatkan nilai array JSON di PHP?

Fungsi json_encode() digunakan untuk mengubah nilai array menjadi JSON.

Bagaimana cara mengubah array JSON menjadi string di PHP?

Untuk melakukan ini, berikan array, dan pembatas ke implode(); . Fungsi json_encode() mengubah array menjadi string JSON . Dibutuhkan array sebagai input dan mengembalikan representasi array JSON. Fungsi serialize() mengambil array dan mengubahnya menjadi string.