Я запускаю проект, который динамически создает JSON. Недавно я обнаружил, что возврат каретки, и двойные кавычки строки JSON недействительны (не могут быть загружены через AJAX). Теперь я заменяю данный параметр, удаляя любые двойные кавычки и т.д., Но мне кажется, что я играю в битку.
Есть ли способ лучше?
Например, в XML, если я создаю узел, я могу просто вызвать setAttribute (strMyJunkyString), и он безопасно создает атрибут, который никогда не сломает XML, даже если он имеет специальные символы, сущности и т.д.
Есть ли какая-то функция MakeStringJSONSafe(), чтобы удалить все, что могло бы сломать массив ([{} "\ r\n])...
Вот несколько примеров разбитых строк, которые моя программа создает...
// String built with " included.
var t1 = [{"requestcomment":"Please complete "Education Provided" for all Medications "}];
// String built with returns embedded included.
var t2 = [{"requestcomment":"Please complete
Education Provided
History
Allergies
"}];
Используйте JSON.NET.
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(new { requestcomment = "Please complete \"Education Provided\" for all Medications" });
а также...
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(new { requestcomment = "Please complete\nEducation Provided\nHistory\nAllergies" });