Как отправить одинарную кавычку как значение в вызове веб-сервиса JSON - PullRequest
0 голосов
/ 17 февраля 2011

Я пытаюсь позвонить в веб-службу JSON ASP.NET с .NET.

Это нормально, когда я отправляю " { county : 'whatever' } ", но я получаю 500 Internal Server error, если я пытаюсь, например, " { county : 'It\'s ok' } ".

Это код:

        request.CookieContainer = container;
        request.Headers.Add("X-Requested-With", "XMLHttpRequest");
        data = " { county : 'It\'s ok' } ";
        buffer = Encoding.UTF8.GetBytes(data);
        request.Method = "POST";
        request.ContentType = "application/json; charset=utf-8";
        request.ContentLength = buffer.Length;
        request.Accept = "application/json, text/javascript, */*";

        using (Stream requestStream = request.GetRequestStream())
            requestStream.Write(buffer, 0, buffer.Length);

        // 500 Internal server error if i use { county : 'It\'s ok' }
        response = (HttpWebResponse)request.GetResponse();

        String ss;
        using (StreamReader sr = new StreamReader(response.GetResponseStream()))
            ss = sr.ReadToEnd();

Я нашел несколько постов с примерами, но не могу заставить его работать:

" { county : \"whatever\" } " и " { \"county\" : \"whatever\" } " также работают.

Но может быть либо " { county : \"It's ok\" } ", " { county : \"It\'s ok\" } ", либо любая другая комбинация, которая содержит одну кавычку в переменной work.

Как я могу отправить одну цитату в вызове JSON?

С уважением.

Ответы [ 2 ]

4 голосов
/ 17 февраля 2011

Это потому, что ваш пример не содержит допустимый JSON.

Вы можете использовать www.jsonlint.com для проверки любых строк JSON.

ALL ключи и строковые значения должны быть заключены в двойные кавычки.

Допустимая строка JSON будет:

{ "county" : "It's ok" }
1 голос
/ 17 февраля 2011
{ "county" : "'" } // what's wrong with this?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...