.NET PostSubmitter отправляет обратную косую черту - PullRequest
0 голосов
/ 18 апреля 2010

Я использую C # для отправки JSON в PHP-скрипт, например:

string json = "{";
json += "\"prop\":\"some text\"";
json += "}";

PostSubmitter post = new PostSubmitter();
post.Url = "http://localhost/synch/notein.php";
post.Type = PostSubmitter.PostTypeEnum.Post;
post.PostItems.Add("note", json);
post.Post();

Конечно, мне придется избегать внутренних кавычек, но они отправляются в сценарий! Что еще хуже: есть текст, который уже имеет кавычки, поэтому его нужно экранировать, чтобы он был действительным JSON. В этом случае я хочу, чтобы передавались обратные слеши. Есть идеи сделать это?

Ответы [ 3 ]

2 голосов
/ 18 апреля 2010

Почему бы не сериализовать пользовательский объект в результат json. Таким образом, вам не нужно беспокоиться о экранировании, фреймворк ... Вот пример использования JavaScriptSerializer - Преобразование объектов в JSON в C # с использованием JavaScriptSerializer

0 голосов
/ 03 мая 2010

Упс, подумал PostSubmitter из .NET-фреймворка, но сторонний. Тем не менее: оказалось, что это проблема PHP. Если у кого-то есть похожая проблема: ищите get_magic_quotes_gpc в PHP-документах.

0 голосов
/ 18 апреля 2010

Избегайте обратной косой черты \\:

json += "\\\"prop\":\\\"some text\\\"";
...