在ASP.NET Web服务(ASMX)的JSON请求中,什么时候区分大小写是重要
我已经使用发送到ASP.NET 2.0 ASMX Web服务的JSON请求(使用AJAX Extensions 1.0 for ASP.NET 2.0)完成了以下测试,似乎在某些情况下,区分大小写很重要,但在其他情况下却非常重要。请参见以下示例:
>案例匹配100%: {"request":{"Address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}} 结果:HTTP / 1.1 200 OK {"request":{"address":{"Address1":"123 Main Street","AddressClassification":null}}} 结果:HTTP / 1.1 200 OK {"Request":{"address":{"Address1":"123 Main Street","AddressClassification":null}}} 结果:HTTP / 1.1 500内部服务器错误 (快速注意事项:Request类和参数请求共享同名的事实并不相关,即使将参数名称更改为lrequest,仍然需要区分大小写。) JSON Web Service请求中的区分大小写何时重要?另外,这是一个一般的Web服务问题,还是ASP.NET AJAX特定的? 附加背景资料: 我正在使用AJAX Extensions 1.0 for ASP.NET 2.0,所以这可能已经在更高版本的框架中被解决了。如果是,请让我知道。 在跟踪我最近的question regarding formatting JSON strings中的答案后,我意识到我的请求失败的原因不是因为无效的JSON(感谢T.J. Crowder指出并链接到http://www.jsonlint.com/进行JSON验证)。相反,在做了一些更多的测试之后,我发现问题是因为Web服务没有我的JSON对象被格式化,我发现Web服务在区分大小写方面非常挑剔。看起来有时候敏感性很重要,而其他时候则不是(见上面的例子)。 这是我的C#代码的Web方法和类看起来像: [WebMethod] public Response ValidateAddress(Request request) { return new test_AddressValidation().GenerateResponse( test_AddressValidation.ResponseType.Ambiguous); } ... public class Request { public Address Address; } public class Address { public string Address1; public string Address2; public string City; public string State; public string Zip; public AddressClassification AddressClassification; } public class AddressClassification { public int Code; public string Description; } 解决方法
根据
JSON-RPC spec,答案是永远。
所以,这听起来像是为你工作的情况是例外,而不是他们没有的情况。有可能某个方面的人只是不遵守规范。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC3:部分视图和主视图之间的交互
- asp.net-mvc – 在MVC文件上传中Request.files为空
- asp.net-mvc – asp.net mvc – 更新IE8中的表元素时,Micro
- asp.net-mvc – ValidateAntiForgeryToken属性
- 在asp.net中获取radgrid telerik隐藏列的值
- asp.net – 获取“这种类型的页面不提供”,如何在本地机器上
- asp.net调查问卷引擎
- asp.net-mvc-3 – MVC3客户端验证无法使用Ajax.BeginForm表
- 在ASP.NET应用程序的global.asax中处理Application_Error
- asp.net – SQL – 两个不同长度的字符串之间的相似性