Tôi đang chuyển một số JSON đến một máy chủ thông qua một kịch bản (không phải của tôi) chấp nhận JSON như một chuỗi.Làm cách nào để thoát khỏi một dấu nháy đơn trong Ruby?
Một số nội dung của JSON chứa các trích dẫn đơn nên tôi muốn đảm bảo rằng bất kỳ dấu nháy đơn nào đều được thoát trước khi được chuyển đến tập lệnh.
Tôi đã thử những điều sau đây:
> irb
> 1.9.3p194 :001 > x = "that's an awesome string"
> => "that's an awesome string"
> 1.9.3p194 :002 > x.sub("'", "\'")
> => "that's an awesome string"
> 1.9.3p194 :003 > x.sub("'", "\\'")
> => "thats an awesome strings an awesome string"
nhưng dường như không thể có được đúng cú pháp.
thế nào là giá trị "được chuyển"? Bởi vì * đó * có vẻ giống như lỗ hổng; JSON xử lý các trích dẫn nhúng chỉ tốt, và một khi nó là * bên trong * một chuỗi Ruby, nó không quan trọng. –
Nếu "thông qua tập lệnh" có nghĩa là quá trình con, hãy mở nó * mà không * tạo một vỏ con sẽ sửa vấn đề này hoàn toàn trong các hệ thống giống Unix. (Tôi không chắc chắn nếu các công cụ Win32 là đủ vá cho điều này vô nghĩa.) –
'x.sub ("'", "\\\\" ")' làm những gì bạn đang cố gắng làm. Nhưng con đường của Người Tín là cách đúng đắn để giải thích. – Zabba