将 JSON 属性的属性反序列化为属性



在 json.net 中,我如何反序列化这个json:

{
    "items": {
        "count": 1,
        "data": [
             { 
                 ...
             },
             ...
        ],
    }
}

对于此 C# 类:

class MyData
{
    [JsonProperty("items/data")] // this doesn't work
    public List<object> Items { get; set; }
}

-

// Then this doesn't populate Items
MyData data = JsonConvert.DeserializeObject<MyData>(json);

有没有一种优雅的方式来用 json.net 做到这一点?

我只是想着如何做到这一点:

var jObject = JObject.Parse(json);
jObject["items"] = jObject["items"]["data"];
MyData data = JsonConvert.DeserializeObject<MyData>(jObject.ToString());

有人有更好的解决方案吗?

对于填充项目,你应该有这个

public class Datum
{
}
public class Items
{
    public int count { get; set; }
    public List<Datum> data { get; set; }
}
public class RootObject
{
    public Items items { get; set; }
}

然后使用这个:

MyData data = JsonConvert.DeserializeObject<RootObject>(json);

相关内容

  • 没有找到相关文章

最新更新