我无法将C#中的JSON字符串反序列化为一个对象,其属性名称与JSON字符串中的属性名称略有不同。这是我的代码:
using System.Collections.Generic;
using Newtonsoft.Json;
[JsonObject(MemberSerialization.OptIn)]
public class AuctionFilesList
{
[JsonProperty("files")]
public List<AuctionFile> Files { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class AuctionFile
{
#region Properties
[JsonProperty("url")]
public string Url { get; set; }
[JsonProperty("lastModified")]
public long LastModified { get; set; }
#endregion
}
string jsonResponse = "{\"files\":[{\"url\":\"http://auction-
api.com/auctions.json\",\"lastModified\":1495397839000}]}"
AuctionFilesList auctionFiles = JsonConvert.DeserializeObject<AuctionFilesList>(jsonResponse);
我没有错误,它只是无法反序列化到对象中。我已尝试添加序列化程序设置,但仍然失败:
JsonSerializerSettings jss = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
AuctionFilesList auctionFiles = JsonConvert.DeserializeObject<AuctionFilesList>(jsonResponse, jss);
我的类结构与json2csharp返回的内容一致,当我将对象的属性名称与JSON匹配时,它会起作用,所以要么我误解了JsonProperty的作用,要么以某种方式忽略它。
感谢任何帮助。