Tôi có nên sử dụng JSON chỉ để sử dụng JSON


11

Tôi đang xây dựng một trang blog để học, với phần hỗ trợ PHP / MySQl. Tất cả đầu vào của người dùng được xử lý với các biểu mẫu được gửi trong các yêu cầu POST.

Việc sử dụng JSON bằng cách nào đó sẽ làm cho nó sạch hơn, hoặc dễ dàng hơn để duy trì hoặc thêm các tính năng? Hay tôi chỉ thêm một định dạng trao đổi mà không có lý do?

Vậy về cơ bản, chức năng nào sẽ được triển khai tốt nhất bằng cách sử dụng JSON?


4
Cái gì thay thế? Phát minh định dạng dữ liệu của riêng bạn?

@del Nam: Yaml, CSV. Tôi có lẽ có thể nghĩ về một vài người khác.
Robert Harvey

10
Hiếm khi sử dụng blah vì lợi ích của việc sử dụng blah một kế hoạch khôn ngoan. Nhìn vào những điều JSON phù hợp, và sau đó xem xét liệu giá trị của nó khi sử dụng JSON cho các khía cạnh cụ thể đó.
whatsisname

@RobertHarvey: Hoặc, các dạng HTTP tiêu chuẩn.
cHao

7
I'm building a blogging site for learning- việc học của bạn các công nghệ liên quan? hoặc để cung cấp tài liệu cho người khác? Nếu trước đây, hoàn toàn - sử dụng json vì lợi ích của việc sử dụng nó để bạn học cách sử dụng nó. Thử thách bản thân với các công nghệ mới - nếu không, bạn sẽ không học cách sử dụng chúng.

Câu trả lời:


15

JSON có một vài lợi thế:

  • Đó là một định dạng có cấu trúc, có thể được xác nhận và phân tích cú pháp bằng các công cụ trưởng thành, hiện có.
  • Nó có thể nói dễ dàng với JavaScript, điều này làm cho nó rất hữu ích cho giao tiếp AJAX.
  • Nó cực kỳ đơn giản và nhẹ. Bất cứ điều gì bạn muốn sử dụng trao đổi dữ liệu XML cho, JSON thường là một sự thay thế tốt hơn.

Nguyên tắc nhỏ của tôi là, nếu bạn chỉ cần trả về một yếu tố ngữ nghĩa duy nhất từ ​​một cuộc gọi, hãy gửi nó dưới dạng văn bản thuần túy. Nhưng nếu bạn cần trả về nhiều mẩu thông tin, hãy sử dụng JSON.


6
trong phần nói chuyện với phần JS, đừng bao giờ sử dụng eval để lấy giá trị của nó thay vào đó hãy sử dụng JSON.parse có sẵn trong hầu hết các trình duyệt
ratchet freak

1
Nó cũng dễ dàng nói chuyện với PHP, vì json_decode()json_encode()chuyển đổi giữa một chuỗi JSON và Array()cấu trúc dữ liệu nguyên gốc
Izkata

@Izkata chỉ khi máy chủ của bạn có các chức năng đó.
Darth Egregious

Ngoại trừ trong trường hợp gửi biểu mẫu, sử dụng JSON phá vỡ các tiêu chuẩn . Tại sao phải sửa những gì không bị hỏng?
Brendan Long

2
@BrendanLong: Tiêu chuẩn đó không nói gì về việc sử dụng hay không sử dụng JSON. Rõ ràng nếu bạn đang gửi biểu mẫu, bạn nên mã hóa tất cả dữ liệu theo tiêu chuẩn HTTP. Nhưng nếu một trong các phần tử biểu mẫu bạn gửi là một mục phức tạp chứa nhiều phần tử ngữ nghĩa, đặt phần tử đó ở định dạng JSON (sau đó được mã hóa chính xác bởi thư viện HTTP của bạn) là một cách tốt để làm điều đó.
Mason Wheeler

5

Đối với những gì bạn mô tả - có vẻ như một nền tảng blog nơi mọi thứ được gửi qua biểu mẫu - không, bạn không cần phải chuyển đổi tất cả thành JSON. PHP xử lý các biểu mẫu liền mạch cho bạn. Không có lý do để giới thiệu một phần phức tạp mới trong tình huống đó.

Một lần nữa, trong trường hợp cụ thể của bạn , JSON có thể là thứ bạn sử dụng nếu bạn cần gửi dữ liệu bán cấu trúc trở lại cho trình duyệt web. Về phía trình duyệt, JSON sẽ rất dễ phân tích cú pháp trong javascript.


2

JSON chỉ hữu ích nếu bạn có ý định tạo một trang web nặng JavaScript sử dụng các yêu cầu Ajax để truyền dữ liệu đến máy chủ / nhận dữ liệu để hiển thị mà không thực hiện hậu kỳ đầy đủ. Nếu bạn không có ý định sử dụng chức năng đó bằng cách sử dụng JSON thì chỉ cần bọc mã của bạn trong một lớp khác phải được tuần tự hóa / giải tuần tự hóa để làm bất cứ điều gì hữu ích.


1

Tôi không nghĩ việc triển khai JSON sẽ giúp cải thiện trang web của bạn. JSON là ký hiệu đối tượng JavaScript; vì vậy trừ khi bạn bắt đầu học JavaScript, tôi không thấy giá trị vốn có trong việc đảm bảo mọi thứ đều có trong JSON.


Bạn không cần phải học JavaScript để sử dụng / lạm dụng JSON. Nó độc lập với ngôn ngữ.
CokoBWare

0

Mặc dù JSON rất mở rộng và có cấu trúc tốt, nhưng nó không phải là nhanh nhất.

JSON rất tốt để gửi dữ liệu từ máy chủ đến máy khách, vì nó giải quyết các vấn đề với mã hóa.

Nhưng trên máy chủ, bạn cần hiệu suất tối đa và mức tiêu thụ không gian đĩa tối thiểu. Vì vậy, đối với các bảng, bạn nên sử dụng các cột MySQL và đối với các bảng không phải là định dạng nhị phân.

Để giải quyết các vấn đề mở rộng với các tệp nhị phân, bạn có thể gắn thẻ các cấu trúc của mình bằng mã gồm 4 ký tự cho tên cấu trúc và số 1-2 byte cho phiên bản.


6
JSON là một định dạng dữ liệu, không phải là cơ sở dữ liệu.
Robert Harvey

Có, nhưng nó có thể được sử dụng để lưu trữ các mảng.
Triang3l
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.