如何仅反序列化json文档的一部分?

时间:2019-01-09 02:15:02

标签: c# json .net-core json.net

在dotnet core v3预览版上使用Json.Net。

json看起来类似于:

{
    "rootElement": {
        "id": 500,
        "name": "water balloon"
    }
}

我想反序列化为一个看起来像这样的对象:

public class Item {
    public int id {get;set;}
    public string name {get;set;}
}

代替烦人的事情:

public class ItemWrapper {
    public Item rootElement {get;set;}
}

这显然是一个人为的例子,但它说明了问题。实际的Item类要复杂得多。而且有很多。因此,我正在尝试确定一种解决方案,该解决方案适用于具有这种通用格式且带有根节点,然后是我真正感兴趣的对象的任何通用格式的json文档。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用JObject.Parse命名空间中的Newtonsoft.Json.Linq,并像这样获得项目:

var obj = JObject.Parse("json"); 
var item = obj["rootElement"].ToObject<Item>();