Tôi có cấu trúc dữ liệu được lưu trữ ở định dạng JSON, được chuyển đổi bằng chức năng serializeJSON. Vấn đề tôi đang gặp phải là các chuỗi có thể là boolean trong CF chẳng hạn như Yes, No, True và False được chuyển thành JSON dưới dạng các giá trị boolean. Dưới đây là mã ví dụ. Bất kỳ ý tưởng về cách ngăn chặn điều này?Làm cách nào để ngăn không cho SerializeJSON thay đổi các chuỗi Có/Không/Đúng/Sai thành boolean?
Code:
<cfset test = {str='Yes'}>
<cfset json = serializeJSON(test)>
<cfset fromJSON = deserializeJSON(json)>
<cfoutput>
#test.str#<br>
#json#<br>
#fromJSON.str#
</cfoutput>
Kết quả:
Yes
{"STR":true}
YES
Tôi vừa mới đưa ra giải pháp. Việc thêm một khoảng trống thừa trong chuỗi là một cách để ngăn không cho nó được chuyển đổi thành boolean. Điều này làm việc cho nhu cầu hiện tại của tôi nhưng bất kỳ giải pháp tốt hơn sẽ được đánh giá cao vì vậy tôi không phải thao tác chuỗi trước khi chuyển đổi. –
Có cùng một vấn đề ngay cả khi tôi tự tạo JSON mà không sử dụng serializeJSON() –