Сборка JSON безопасно

1

Я запускаю проект, который динамически создает 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
    "}];
  • 0
    Напишите массив в php и используйте json_encode и сохраните боль
  • 0
    И если вы хотите проверить свой синтаксис json, есть много инструментов для его проверки jsonlint.com
Показать ещё 8 комментариев
Теги:
json.net

1 ответ

2
Лучший ответ

Используйте 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" });
  • 0
    Это отличная библиотека из того, что я использовал до сих пор.
  • 0
    @ Брендан, спасибо. Я закончил писать свою собственную функцию очистки, которая становится все умнее и умнее. Твой ответ самый лучший на мой оригинальный вопрос. К сожалению, это не работает для меня, так как мой набор данных содержит как строки, так и JSON, которые я хочу вернуть в браузер как JSON. Есть мысли по этому поводу?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню