如何解析JsonConvert.DeserializeObject中的属性

时间:2014-02-17 09:26:04

标签: json.net

我们从API获得了以下JSON输出。

我们在ASP.NET中使用以下代码来反序列化对类的JSON响应:

var j = JsonConvert.DeserializeObject<classname>(response);

在反序列化以下JSON时,我们无法获取属性值。

{
    "User": {
        "Address": {
            "@CityName": "Test",
            "$": "B4C99EB0-18E6-439F-882A-9E4A11E1FF75"
        }
    }
}

根据上面的示例,我们需要获取@cityname$属性值。

我们需要在课堂上输出以下内容:

@CityName : Test
$ : B4C99EB0-18E6-439F-882A-9E4A11E1FF75

我正在获取元素值,但我无法获取属性值。

我有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以使用[JsonProperty]属性将非标准JSON属性名称映射到类中的属性。让你的课程像这样:

public class RootObject
{
    public User User { get; set; }
}

public class User
{
    public Address Address { get; set; }
}

public class Address
{
    [JsonProperty("@CityName")]
    public string CityName { get; set; }
    [JsonProperty("$")]
    public string Guid { get; set; }
}

然后像这样反序列化:

var obj = JsonConvert.DeserializeObject<RootObject>(response);