我正在尝试使用.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调用中发送单引号?
亲切的问候。
答案 0 :(得分:4)
这是因为您的示例不包含有效的JSON。
您可以使用www.jsonlint.com验证任何JSON字符串。
所有键和字符串值应该用double qoutes包围。
有效的JSON字符串为:
{ "county" : "It's ok" }
答案 1 :(得分:1)
{ "county" : "'" } // what's wrong with this?