我已经对发送到ASP.NET 2.0 ASMX Web服务的JSON请求进行了以下测试(使用ASP.NET
2.0的AJAX扩展1.0),在某些情况下区分大小写很重要,而在其他情况下则不然。请参阅以下示例:
{"request":{"Address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}
结果: HTTP/1.1 200 OK
Address
不匹配的情况:{"request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}
结果: HTTP/1.1 200 OK
request
不匹配的情况:{"Request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}
结果: HTTP/1.1 500 Internal Server Error
(快速说明:类Request
和参数request
共享相同名称的事实并不重要。即使我将参数名称更改为lrequest
,仍然需要区分大小写。)
JSON Web服务请求中的区分大小写何时重要? 另外,这是一个普遍的Web服务问题,还是特定于ASP.NET AJAX?
其他背景信息:
我正在使用ASP.NET 2.0的AJAX扩展1.0,因此在更高版本的框架中可能已经解决了这一问题。如果是这样,请告诉我。
在跟踪了有关格式化JSON字符串的最新问题中的答案之后,我意识到我的请求失败的原因不是由于无效的JSON(感谢TJ
Crowder
指出并链接到http://
www。
jsonlint.com/用于JSON验证)。相反,在进行了更多测试之后,我知道问题是因为Web服务没有格式化我的JSON对象,并且发现Web服务在区分大小写方面非常
挑剔 。似乎有时区分大小写很重要,而有时则不然(请参见上面的示例)。
这是我的Web方法和类的C#代码如下所示:
[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规范,答案始终是。
9.0过程和参数名称的区分大小写
一致的实现必须将过程和参数名称视为区分大小写,这样名称bar和BAR将被视为两个不同的实体。
因此,听起来像是对您有用的情况是例外,而不是没有例外的情况。可能是等式中某些方面的人只是不遵守规范。
(1)重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。 (2)重写的使用是建立在继承关系上的,子类在继承父类的基础上,增加新的功能,可以用重写。 (3)简单总结: 重载是多样性,重写是增强剂; 目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展; 目的是在不修改原方法及源代码的基础上对方法进行扩展或增强时,使用重写; 生活例子: 你想吃一碗面,我
问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut
问题内容: 有什么办法可以使json.Unmarshal 不 接受不区分大小写的匹配?我收到带有标签的JSON,例如“ e”和“ E”,并想解组带有标签“ e”的对象,但忽略带有“ E”的对象。现在,我发现的唯一解决方案是定义一个包含两个标签的结构,然后简单地忽略标签“ E”,但是我正在寻找一种更清洁的解决方案。 从官方文档: 为了将JSON解组到结构中,Unmarshal将传入的对象键与Mars
我有一个JSON属性文件,由用户手动更新。 我正在使用Jackson对象映射器将其映射到对象: 因为它是由用户手动更新的,所以他们可以使用任何套管;混合、大写、小写等。我找到的解决方案是,在读取文件时,我将转换为小写,如下所示: 在这之后,我使用Jackson映射到我的对象,这很有效。我对映射类使用小写成员名称。这是正确的方法还是有其他方法?
我需要一个像
问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,