【发布时间】:2016-08-03 22:23:24
【问题描述】:
我正在尝试将字符串内容反序列化为对象,但我希望内容区分大小写。只有当字符串具有小写属性时,代码才会成功,如果字符串具有大写属性,则代码会失败。以下是类:
internal class ResponseList
{
[DataMember]
[JsonProperty]
internal List<Response> Value { get; set; }
}
internal class Response
{
[DataMember]
[JsonProperty]
internal string Id { get; set; }
[DataMember]
[JsonProperty]
internal string Location { get; set; }
[DataMember]
[JsonProperty]
internal PlanClass Plan { get; set; }
}
internal class PlanClass
{
[DataMember]
[JsonProperty]
internal string Name { get; set; }
[DataMember]
[JsonProperty]
internal string Product { get; set; }
[DataMember]
[JsonProperty]
internal string Publisher { get; set; }
}
以下是我的代码。但这不区分大小写。大写和小写都成功:
string content = File.ReadAllText(contentFilePath);
JsonSerializerSettings jsonSerializerSettings1 = new JsonSerializerSettings()
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
ResponseList response = (ResponseList)JsonConvert.DeserializeObject(contentResourceOutput, typeof(ResponseList), Constants.JsonSerializerSettings);
代码只有在内容为:
{
"value": [
{
"id": "id1",
"location": "location1",
"plan": {
"name": "free",
"product": "product1",
"publisher": "publisher1"
}
}
]
}
即使其中一个键是大写字母也会失败。例如。
{
"value": [
{
"Id": "id1",
"Location": "location1",
"plan": {
"Name": "free",
"product": "product1",
"publisher": "publisher1"
}
}
]
}
请注意,只有键/属性名称应为小写。这些值可以是大写。 有没有办法让 JsonConvert.Deserializeobject 区分大小写?
【问题讨论】:
标签: c# json serialization deserialization case-sensitive