Hướng dẫn get value json php

I have the following JSON format:

Nội dung chính

  • Chuyển array thành json string
  • Array thành json string
  • Chuyển ngược lại json string thành array
  • Chuyển Object thành json string
  • 1. JSON [JavaScript Object Notation] là gì?
  • 2. Hàm json_encode[] trong PHP
  • 3. Hàm json_decode[] trong PHP

{
    "S01": ["001.cbf", "002.cbf", "003.cbf", "004.cbf", "005.cbf", "006.cbf", "007.cbf", "008.cbf", "009.cbf"],
    "S02": ["001.sda", "002.sda", "003.sda"],
    "S03": ["001.klm", "002.klm"]
}

I try using this code:

$json = json_decode['{"S01":["001.cbf","002.cbf","003.cbf","004.cbf","005.cbf","006.cbf","007.cbf","008.cbf","009.cbf"],"S02":["001.sda","002.sda","003.sda"],"S03":["001.klm","002.klm"]}'];

foreach[$json as $key => $val] {
     if [$key] { echo 'KEY IS: '.$key; };
     if [$val] { echo 'VALUE IS: '.$value; };
     echo '
'; }

But i got empty results...i need to get output like this:

KEY IS: S01
VALUE IS: 001.cbf
VALUE IS: 002.cbf
VALUE IS: 003.cbf
VALUE IS: 004.cbf
VALUE IS: 005.cbf
VALUE IS: 006.cbf
VALUE IS: 007.cbf
VALUE IS: 008.cbf
VALUE IS: 009.cbf

KEY IS: S02
VALUE IS: 001.sda
VALUE IS: 002.sda
VALUE IS: 003.sda

KEY IS: S03
VALUE IS: 001.klm
VALUE IS: 002.klm

This i need so that i can generate ul and li elements using value and key name...this is JSON format that is stored in mysql database and is read to php script that needs to parse the JSON in the above output so that i can create ul and li elements using output.

I try to do foreach but i got empty results? I know when i got value that i need to do explode string using explode[', ', $value] but i can't get $value and $key to be read as needed in PHP.

Chuyển array thành json string

Array thành json string

$user = [
    'id' => 1,
    'username' => 'admin',
];

echo json_encode[$user];

Kết quả:

Nội dung chính

  • Chuyển array thành json string
  • Array thành json string
  • Chuyển ngược lại json string thành array
  • Chuyển Object thành json string
  • 1. JSON [JavaScript Object Notation] là gì?
  • 2. Hàm json_encode[] trong PHP
  • 3. Hàm json_decode[] trong PHP

{"id":1,"username":"admin"}

Nếu muốn format đẹp hơn ta cho thêm tham số:

echo json_encode[$user, JSON_PRETTY_PRINT];

Kết quả:

{
    "id": 1,
    "username": "admin"
}

Chuyển ngược lại json string thành array

Cách thực hiện đơn giản như sau:

$json = '{"id":1,"username":"admin"}';
$user = json_decode[$json, true];

Tham số thứ 2 true của hàm json_decode là để hàm trả về kết quả là array.

Chuyển Object thành json string

Encode

Ta giả sử có class user như sau:

class User {
    public $id;
    public $username;
}

Sử dụng class như sau:

$user = new User[];
$user->id = 1;
$user->username = 'admin';

echo json_encode[$user];

Ta cũng sẽ được kết quả tương tự như trên:

`{"id":1,"username":"admin"}

Decode

Vậy làm sao để decode được json to object của class User Có khá nhiều cách nhưng cách đơn giản và hiệu quả nhất như sau:

// Khai báo class
class User {
    public $id;
    public $username;
}

// json string
$json = '{"id":1,"username":"admin"}';

// thực hiện decode như ở trên
$data = json_decode[$json, true];

// tạo object User
$user = new User[];

// Gắn dữ liệu vào object User
foreach [$data as $key => $value] {
    $user->{$key} = $value;
}

// Thu được kết quả
var_export[$user];

Kết quả:

User::__set_state[array[
   'id' => 1,
   'username' => 'admin',
]]

---

Phuc Tran Hoang

Trong bài này, chúng ta sẽ tìm hiểu về dữ liệu json trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. JSON [JavaScript Object Notation] là gì?

JSON [JavaScript Object Notation] là một định dạng [format] dữ liệu bắt nguồn từ ngôn ngữ Javascript. Dữ liệu trong JSON chủ yếu là text, được lưu trữ theo cặp thuộc tính [attribute] – giá trị [value]. JSON thường được sử dụng trong các trường hợp:

  • Phát triển web: truyền gửi dữ liệu từ server đến client và ngược lại.
  • Các file cấu hình [configuration files]: JSON có thể được sử dụng để lưu trữ các cấu hình [configurations] và cài đặt [settings] trong các ứng dụng. Ví dụ như file settings.json trong Visual Studio Code.
  • Hoặc đơn giản là dùng JSON để lưu trữ dữ liệu.

Bên dưới là ví dụ file info.json lưu trữ dữ liệu về thông tin của website gochocit.com.

{ 
    "domainname": "gochocit.com",
    "active": true,
    "numberposts": 360,
    "category": ["hardware", "software", "network"],
    "facebookpage": "//www.facebook.com/gochocit/",
    "build": {
        "language": "php",
        "cms": "wordpress",
        "database": "mysql"
    }
}

Các lưu ý chính về định dạng của JSON là:

  • JSON bao gồm một chuỗi các cặp key – value [có thể gọi là attribute – value]. Và chúng được bao quanh bởi dấu ngoặc nhọn {}.
  • Mỗi cặp key – value có định dạng "key": . Value có thể là bất kỳ kiểu dữ liệu nào như object, list, string, number, boolean, null,
  • Các cặp key – value được cách nhau bởi dấu phẩy ,. Chỉ cặp key – value cuối cùng thì không có dấu phẩy , phía sau.

Trong PHP, hàm json_encode[]json_decode[] được xây dựng sẵn để giúp lập trình viên xử lý dữ liệu JSON.

2. Hàm json_encode[] trong PHP

 Hàm json_encode[] trong PHP giúp trả về định dạng dữ liệu json. Cú pháp:

json_encode[mixed $value, int $flags = 0, int $depth = 512]: string|false

Trong đó,

$value: biến lưu dữ liệu cần mã hóa [encode] sang định dạng json. Lưu ý: Tất cả dữ liệu string cần phải được mã hóa UTF-8 trước khi chuyển sang json.

$flag: là những json constant trong PHP, quy định định dạng json sẽ trả về như thế nào.

$depth: Độ sâu [depth] tối đa của json và được thiết lập lớn hơn 0.

Kết quả trả về của hàm json_encode[] là một chuỗi json hoặc false nếu không thể mã hóa $value sang dữ liệu json.

Ví dụ encode mảng kết hợp sang chuỗi json


Kết quả
{
   "domainname":"gochocit.com",
   "numberposts":410,
   "build":{
      "language":"php",
      "cms":"wordpress",
      "database":"mysql"
   }
}

Ví dụ encode mảng indexed sang chuỗi json


Kết quả
[
   "gochocit.com",
   410,
   {
      "language":"php",
      "cms":"wordpress",
      "database":"mysql"
   }
]

3. Hàm json_decode[] trong PHP

Hàm json_decode[] trong PHP giúp giải mã [decode] một chuỗi json sang kiểu dữ liệu PHP phù hợp. Đó có thể là một PHP object, mảng kết hợp,… Cú pháp:

json_decode[
    string $json,
    ?bool $associative = null,
    int $depth = 512,
    int $flags = 0
]: mixed

Trong đó,

$json: là chuỗi json cần được giải mã. Chuỗi json phải được mã hóa UTF-8.

$associative: nếu là true, kết quả trả về của hàm sẽ là mảng kết hợp. Nếu là false, kết quả trả về của hàm sẽ là một PHP object. Nếu là null, kết quả trả về là mảng hay object tùy thuộc vào $flag có được đặt là constant JSON_OBJECT_AS_ARRAY hay không.

$depth: Độ sâu [depth] tối đa của chuỗi json được giải mãi.

$flags: là những json constant trong PHP, quy định định dạng json sẽ trả về như thế nào.

Kết quả trả về của hàm json_decode[] là một kiểu dữ liệu PHP phù hợp của chuỗi json được giải mã. Đó có thể là một PHP object, mảng kết hợp,…

Ví dụ decode chuỗi json sang PHP object


Kết quả
object[stdClass]#1 [3] { ["domainname"]=> string[12] "gochocit.com" ["active"]=> bool[true] ["numberposts"]=> int[410] }

Ví dụ decode chuỗi json sang mảng kết hợp


Kết quả
array[3] { ["domainname"]=> string[12] "gochocit.com" ["active"]=> bool[true] ["numberposts"]=> int[410] }
domainname => gochocit.com
active => 1
numberposts => 410

Trong ví dụ trên, chúng ta có thể sử dụng vòng lặp foreach[] để truy cập đến các giá trị trong object hoặc mảng kết hợp của chuỗi json đã decode.

  • Kết nối hệ quản trị cơ sở dữ liệu Oracle với Java
  • Kỹ thuật cấp phát bộ nhớ động và minh họa với C++
  • Sử dụng hàm print_r, var_dump, var_export trong PHP
  • Chương trình Java tìm số ngày của tháng trong một năm
  • Nạp chồng toán tử [operator overloading] trong Python

Chủ Đề