【问题标题】:How to deserialize only part of the json document? [duplicate]如何仅反序列化 json 文档的一部分? [复制]
【发布时间】:2019-01-09 02:15:02
【问题描述】:

在 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 文档,其根节点后跟我真正感兴趣的对象。

有什么想法吗?

【问题讨论】:

  • 只用JObject.Parse?例如var obj = JObject.Parse("json"); var item = obj["rootElement"].ToObject<Item>();
  • @zaitsman:完美。非常感谢。如果你把它写成答案,我们可以关闭它。

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


【解决方案1】:

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

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

【讨论】:

  • 请不要回答重复的问题。粗略地搜索了一下标题,找到了几个。
猜你喜欢
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 2015-09-08
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多