Giới thiệu về Json

Định nghĩa

  • JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được, bạn có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng.
  • JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tôi thì trong tương lai tới trong các ứng dụng sẽ sử dụng nó là đa số.

Ví dụ về Json

- Ví dụ dưới đây định nghĩa một chuỗi JSON lưu trữ thông tin bài viết như sau:

{
    "title" : "Cấu trúc node Json trong WAK",
    "author" : "truongnv20",
    "website" : "wak.vn",
    "link_post" : "http://wak.vn/wiki:doing-c-u-truc-node-json-trong-wak"
}

Như vậy cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó.
- Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một vài điều như sau:
  • Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}
  • Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu bạn đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn. Nên trường hợp trong value của bạn có chứa dấu nháy kép thì hãy dùng dấu (\) để đặt trước nó nhé.
  • Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách

Các key của JSON bạn nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng., ký tự đầu tiên không nên đặt là số.

Node Json trong WAK

Minh họa

  • Dưới đây là 1 list cơ bản trong wak khi ta đăng nhập vào theo đường dẫn:
  • Url gốc: /ui/ly_module/list.jsp?orderField=CREATED&orderType=DESC&GEN_HTML=%EF%80%82
list_ori.png
  • Khi thêm fearture "&format=json" vào cuối Url trên,ta thu được giá trị json của list tương ứng bên trên.
  • Url khi thêm "&format=json": /ui/ly_module/list.jsp?orderField=CREATED&orderType=DESC&GEN_HTML=%EF%80%82&format=json
{
"columnTypes":[1,0,0,0,3,0],
"columnNames":["LY_MODULE_ID","LY_MODULE_TYPE_ID","CODE","CONTENT","CREATED","CREATOR"],
"data":[ { "row": [6,"Internal module","LIST_ORIENTATION","/module/list_orientation.jsp",1475728204684,"truongnv1"] }
, { "row": [5,"Internal module","NO_LOGIN","/module/nologin.jsp",1475727917170,"truongnv1"] }
, { "row": [4,"Internal module","MENU","/module/menu.jsp",1475720321394,"SYSTEM"] }
, { "row": [3,"Internal module","COPYRIGHT","/module/copyright.jsp",1475720321381,"SYSTEM"] }
, { "row": [2,"Internal module","BANNER","/module/banner.jsp",1475720321375,"SYSTEM"] }],
"startRowIndex":1, "status": 0
}

Node Json

Node Json trong wak.

  • Có vị trí ở dưới node Query và node Html.
  • Dùng để cấu hình,định dạng cho dạng dữ liệu Json đầu ra.

Các tham số cấu hình

  • MaximumRowFetched : Số lượng kết quả tối đa bản ghi trên 1 trang khi gọi được theo Json.

Khi cùng xuất hiện tham số này ở 2 node là Html và Json thì khi load trang thì số giá trị hiển thị sẽ được tính theo giá trị ở node Html,nhưng khi bấm nút tìm kiếm thì sẽ load theo số giá trị của node Json.
Ví dụ như code dưới dây:

Html
    MaximumRowFetched==5
Json
    MaximumRowFetched==2

Thì khi load trang,tối đa sẽ đưa ra 5 giá trị/ trang.
node-json.png

Khi bấm tìm kiếm ,tối đa sẽ đưa ra 2 giá trị/trang.

node-2.png

Giá trị Json được trả về:

{
"columnTypes":[1,0,0,0,3,0],
"columnNames":["LY_MODULE_ID","LY_MODULE_TYPE_ID","CODE","CONTENT","CREATED","CREATOR"],
"data":[ { 
"row": [6,"Internal module","LIST_ORIENTATION","/module/list_orientation.jsp",1475728204684,"truongnv1"] },
 { "row": [5,"Internal module","NO_LOGIN","/module/nologin.jsp",1475727917170,"truongnv1"] }],
"startRowIndex":1, "nextPageStartRowIndex":3, "status": 0
}
  • Footer : Bạn có thể viết code javascript để thực hiện các chức năng bạn mong muốn:
    Footer=:
    :{

    :}
  • Header :
  • + Comment