Hướng dẫn php update json array - cập nhật php mảng json

I have a Json-File. In this JSON-File i have deleted an Object. This i reach by creating a new Array and writing this Array to the original JSON-File. But here i get an Issue, cause the new Data overwrite the whole JSON-File.

I tried with

array_merge
array_replace
array_merge_recursive
array_replace_recursive

But i get always the same Result: [Here i deleted the first Object]

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}

The original File has this Content:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}

My Question is, how can i update the Array, for example called Server-01 with the new Data without deleting the other Arrays?

This is the PHP-Code i have so far:

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];

Ứng dụng hay nhất của JSON trong PHP đó là dùng để xuất ra chuỗi JSON dưới dạng API để các client có thể lấy và xử lý, thông dụng nhất là ajax. Mình đã có một serie về xử lý JSON trong ajax trong serie ajax toàn tập nên các bạn đến serie đó để xem cách sử dụng JSON kết hợp ajax nhé.

Bây giờ ta sẽ thảo luận về cách lưu trữ JSON trong MYSQL. Thông thường chúng ta sẽ kết hợp hàm
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7 trong php để chuyển đổi một mảng các thông tin nào đó sang chuỗi JSON và lưu vào trong CSDL. Sau đó khi lấy thông tin từ MYSQL để hiển thị ra website thì chúng ta dùng hàm
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
3 để chuyển đổi ngược trở lại. Như vậy khó khăn lớn nhất của những ban newbie chính là ý tưởng thiết kế CSDL như thế nào để lưu JSON? Thông thường những field nào mà cần tìm kiếm thông tin thì bạn nên tạo một field riêng, còn các thông tin mà không áp dụng trong tìm kiếm thì bạn có thể đưa nó vào một chuỗi JSON rồi lưu vào một field, như vậy sẽ giải được số lượng field.

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

echo json_encode[$user];

Kết quả:

Hàm json_encode trong PHPShow

  • Ứng dụng hay nhất của JSON trong PHP đó là dùng để xuất ra chuỗi JSON dưới dạng API để các client có thể lấy và xử lý, thông dụng nhất là ajax. Mình đã có một serie về xử lý JSON trong ajax trong serie ajax toàn tập nên các bạn đến serie đó để xem cách sử dụng JSON kết hợp ajax nhé.
  • Bây giờ ta sẽ thảo luận về cách lưu trữ JSON trong MYSQL. Thông thường chúng ta sẽ kết hợp hàm
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    7 trong php để chuyển đổi một mảng các thông tin nào đó sang chuỗi JSON và lưu vào trong CSDL. Sau đó khi lấy thông tin từ MYSQL để hiển thị ra website thì chúng ta dùng hàm
    // load file
    $file = file_get_contents[$filename_moni];
    
    // decode copy of json to associative array
    $data = json_decode[$file, true];
    
    // get ID to delete
    $ID = $ID - 1;
    
    unset[$data['server'][$Server][$ID]];   
    
    $var=array[];
    foreach[$data['server'][$Server] as $key => $item] {
    
        $var['server'][$Server][] = $item;      
    
    }
    
    foreach[$var['server'][$Server] as $key => $item] {
    
        if [ $key != $var['server'][$Server][$key]['id'] ] {
    
            $var['server'][$Server][$key]['svc'] = $item['svc'];
            $var['server'][$Server][$key]['id'] = $key + 1;
    
        }       
    
    }
    
    $data = array_replace[$data,$var];
    $jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
    file_put_contents[$filename_moni, $jsondata];
    
    3 để chuyển đổi ngược trở lại. Như vậy khó khăn lớn nhất của những ban newbie chính là ý tưởng thiết kế CSDL như thế nào để lưu JSON? Thông thường những field nào mà cần tìm kiếm thông tin thì bạn nên tạo một field riêng, còn các thông tin mà không áp dụng trong tìm kiếm thì bạn có thể đưa nó vào một chuỗi JSON rồi lưu vào một field, như vậy sẽ giải được số lượng field.
  • 3. Lời kết
  • Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.
  • 1. Xử lý JSON trong PHP
  • Hàm json_decode trong php
  • Hàm json_encode trong PHP
  • Hàm json_encode trong PHP
  • Bài giải như sau:
  • 1. Xử lý JSON trong PHP
  • Hàm json_decode trong php
  • Hàm json_encode trong PHP
  • Hàm json_encode trong PHP
  • Bài giải như sau:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
9

2. Các ví dụ JSON trong PHP

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
0

Kết quả:

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

3. Lời kết

Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.

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

Chuyển array thành json string

Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.

Chuyển array thành json string

Array thành json string

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

Nội dung chính Show

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

echo json_encode[$user];

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

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

Chuyển Object thành json string

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

// 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ả:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
0

Hàm json_encode trong PHP

Hàm này có chức năng ngược lại hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: 
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
9, trong đó
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
0 là mảng ban muốn chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.

Ví dụ: Sử dụng hàm

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.

Bài giải như sau:

  • 1. Xử lý JSON trong PHP
  • Hàm json_decode trong php
  • Hàm json_encode trong PHP
  • Hàm json_encode trong PHP
  • Bài giải như sau:
  • 1. Xử lý JSON trong PHP
  • Hàm json_decode trong php
  • Hàm json_encode trong PHP
  • Hàm json_encode trong PHP
  • Bài giải như sau:

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.

1. Xử lý JSON trong PHP

PHP cũng là một ngôn ngữ lập trình nên nó cũng có cung cấp các thư viện xử lý JSON giúp lập trình viên giải quyết nó dễ dàng. Chúng ta có hai hàm đó là hàm json_decode và json_encode:

Hàm json_decode trong php

Hàm này mục đích chuyển một chuỗi JSON sang dạng mảng hoặc object, hàm này có cú pháp như sau: 

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
1. Trong đó:

  • {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    2: là chuỗi JSON
  • {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    3 có hai giá trị true / false. Nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    4 thì kết quả nó trả về là dạng  array, ngược lại nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5 thì kết quả trả về dạng object. Mặc định là
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5.true / false. Nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    4 thì kết quả nó trả về là dạng  array, ngược lại nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5 thì kết quả trả về dạng object. Mặc định là
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5.

Ví dụ: Cho chuỗ JSON như sau: Cho chuỗ JSON như sau:

Bài viết này được đăng tại [free tuts .net]

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
1

Hãy dùng hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7 để chuyển về dạng mảng và object. Bài giải như sau:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
2

Kết quả::

Hàm json_encode trong PHP

Hàm này có chức năng ngược lại hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: 
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
9, trong đó
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
0 là mảng ban muốn chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.

Ví dụ: Sử dụng hàm

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.: Sử dụng hàm
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
3

Bài giải như sau:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
4

Kết quả::

Hàm json_encode trong PHP

Hàm này có chức năng ngược lại hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: 
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
9, trong đó
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
0 là mảng ban muốn chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.

Ví dụ: Sử dụng hàm

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.

Bài giải như sau:

2. Các ví dụ JSON trong PHP

Ứng dụng hay nhất của JSON trong PHP đó là dùng để xuất ra chuỗi JSON dưới dạng API để các client có thể lấy và xử lý, thông dụng nhất là ajax. Mình đã có một serie về xử lý JSON trong ajax trong serie ajax toàn tập nên các bạn đến serie đó để xem cách sử dụng JSON kết hợp ajax nhé.

Bây giờ ta sẽ thảo luận về cách lưu trữ JSON trong MYSQL. Thông thường chúng ta sẽ kết hợp hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7 trong php để chuyển đổi một mảng các thông tin nào đó sang chuỗi JSON và lưu vào trong CSDL. Sau đó khi lấy thông tin từ MYSQL để hiển thị ra website thì chúng ta dùng hàm
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
3 để chuyển đổi ngược trở lại. Như vậy khó khăn lớn nhất của những ban newbie chính là ý tưởng thiết kế CSDL như thế nào để lưu JSON? Thông thường những field nào mà cần tìm kiếm thông tin thì bạn nên tạo một field riêng, còn các thông tin mà không áp dụng trong tìm kiếm thì bạn có thể đưa nó vào một chuỗi JSON rồi lưu vào một field, như vậy sẽ giải được số lượng field.freetuts.net, không được copy dưới mọi hình thức.

3. Lời kết

Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.

Bài trước chúng ta đã tìm hiểu được khái niệm JSON là gì rồi và cũng biết được cấu trúc chuỗi JSON như thế nào, vậy thì trong bài này chúng ta sẽ tìm hiểu xử lý JSON trong PHP như thế nào và các hàm xử lý JSON trong PHP từ căn bản đên nâng cao.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

  • 1. Xử lý JSON trong PHP
  • {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    3 có hai giá trị true / false. Nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    4 thì kết quả nó trả về là dạng  array, ngược lại nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5 thì kết quả trả về dạng object. Mặc định là
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5.true / false. Nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    4 thì kết quả nó trả về là dạng  array, ngược lại nếu
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5 thì kết quả trả về dạng object. Mặc định là
    {
      "server": {
        "SERVER-01": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
        "SERVER-02": [
            {
                "svc": "SERVICE01",
                "id": 1
            },
            {
                "svc": "SERVICE02",
                "id": 2
            },
            {
                "svc": "SERVICE03",
                "id": 3
            },
            {
                "svc": "SERVICE04",
                "id": 4
            }
            {
                "svc": "SERVICE05",
                "id": 5
            }
        ]
      }
    }
    
    5.

Ví dụ: Cho chuỗ JSON như sau: Cho chuỗ JSON như sau:

Bài viết này được đăng tại [free tuts .net]

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
1

Hãy dùng hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7 để chuyển về dạng mảng và object. Bài giải như sau:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
2

Kết quả::

Hàm json_encode trong PHP

Hàm này có chức năng ngược lại hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: 
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
9, trong đó
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
0 là mảng ban muốn chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.

Ví dụ: Sử dụng hàm

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.: Sử dụng hàm
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
3

Bài giải như sau:

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
    ]
  }
}
4

Kết quả::

Hàm json_encode trong PHP

Hàm này có chức năng ngược lại hàm

{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
7, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: 
{
  "server": {
    "SERVER-01": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
    "SERVER-02": [
        {
            "svc": "SERVICE01",
            "id": 1
        },
        {
            "svc": "SERVICE02",
            "id": 2
        },
        {
            "svc": "SERVICE03",
            "id": 3
        },
        {
            "svc": "SERVICE04",
            "id": 4
        }
        {
            "svc": "SERVICE05",
            "id": 5
        }
    ]
  }
}
9, trong đó
// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
0 là mảng ban muốn chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.

Ví dụ: Sử dụng hàm

// load file
$file = file_get_contents[$filename_moni];

// decode copy of json to associative array
$data = json_decode[$file, true];

// get ID to delete
$ID = $ID - 1;

unset[$data['server'][$Server][$ID]];   

$var=array[];
foreach[$data['server'][$Server] as $key => $item] {

    $var['server'][$Server][] = $item;      

}

foreach[$var['server'][$Server] as $key => $item] {

    if [ $key != $var['server'][$Server][$key]['id'] ] {

        $var['server'][$Server][$key]['svc'] = $item['svc'];
        $var['server'][$Server][$key]['id'] = $key + 1;

    }       

}

$data = array_replace[$data,$var];
$jsondata = json_encode[$data, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK];
file_put_contents[$filename_moni, $jsondata];
1để chuyển đổi mảng sau sang chuỗi JSON.

3. Lời kết

Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.

Bài Viết Liên Quan

Chủ Đề