如何在JSON webservice调用中将单引号作为值发送

时间:2011-02-17 09:58:44

标签: .net asp.net json

我正在尝试使用.NET调用JSON ASP.NET Web服务。

我发送" { 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\" } "或任何其他包含变量工作中的单引号的组合。

如何在JSON调用中发送单引号?

亲切的问候。

2 个答案:

答案 0 :(得分:4)

这是因为您的示例不包含有效的JSON。

您可以使用www.jsonlint.com验证任何JSON字符串。

所有键和字符串值应该用double qoutes包围。

有效的JSON字符串为:

{ "county" : "It's ok" }

答案 1 :(得分:1)

{ "county" : "'" } // what's wrong with this?