Lý tưởng nhất là tìm một thư viện JSON bằng ngôn ngữ của bạn để bạn có thể cung cấp một số cấu trúc dữ liệu phù hợp và để nó lo lắng về cách thoát khỏi mọi thứ . Nó sẽ giữ cho bạn nhiều vệ sinh hơn. Nếu vì bất kỳ lý do gì bạn không có thư viện bằng ngôn ngữ của mình, bạn không muốn sử dụng thư viện này (tôi sẽ không đề xuất điều này), hoặc bạn đang viết thư viện JSON, hãy đọc tiếp.
Thoát khỏi nó theo RFC. JSON là khá tự do: Các nhân vật duy nhất bạn phải thoát được \
, "
và các mã điều khiển (bất cứ điều gì ít hơn U + 0020).
Cấu trúc thoát này là đặc trưng cho JSON. Bạn sẽ cần một hàm cụ thể JSON. Tất cả các lối thoát có thể được viết dưới dạng đơn \uXXXX
vị XXXX
mã UTF-16¹ cho ký tự đó. Có một vài phím tắt, chẳng hạn như \\
, cũng hoạt động. (Và chúng dẫn đến một đầu ra nhỏ hơn và rõ ràng hơn.)
Để biết chi tiết đầy đủ, xem RFC .
Lối thoát của SONJSON được xây dựng trên JS, do đó, nó sử dụng \uXXXX
, XXXX
đơn vị mã UTF-16 ở đâu. Đối với các điểm mã bên ngoài BMP, điều này có nghĩa là mã hóa các cặp thay thế, có thể có một chút lông. (Hoặc, bạn chỉ có thể xuất ký tự trực tiếp, vì mã hóa của JSON là văn bản Unicode và cho phép các ký tự cụ thể này.)
'
, bạn sẽ phải chịu số phận từ đầu: Chuỗi JSON chỉ có thể được bao quanh"
. Xem ietf.org/rfc/rfc4627.txt .