使用@符号反序列化JSON属性名称

时间:2013-06-05 07:28:07

标签: c# serialization json.net

我的json格式如下:

{
   "@start":"0",
   "@totalRecords":"1",
   "@queryTime":"0"
}

我的课程如下:

public class SearchResult
    {
        [JsonProperty(PropertyName = "@start")]
        public string Start { get; set; }

        [JsonProperty(PropertyName = "@totalRecords")]
        public string Total { get; set; }

        [JsonProperty(PropertyName = "@queryTime")]
        public string QueryTime { get; set; }
    }

但是Start,Total和QueryTime保持为空。

作为参考,反序列化按以下方式完成:

SearchResult result = JsonConvert.DeserializeObject<SearchResult>(jsonString);

1 个答案:

答案 0 :(得分:0)

刚试过你的代码,我得到了理想的结果。 Json.Net的版本是4.5.10.15407。

string jsonString = @"{ ""@start"":""0"", ""@totalRecords"":""1"", ""@queryTime"":""0"" }";
SearchResult result = JsonConvert.DeserializeObject<SearchResult>(jsonString);

检查输入json字符串中是否存在问题(引用,编码或任何内容),或者是否是您使用的Json.Net版本中的错误。