在 .NET 中反序列化 JSON - 带有正斜杠的属性

有刺的

我有这样的 JSON,我试图将其反序列化为 .NET Core 3.1 C# 对象。

{
  "meta": {
    "/workers/assignments/myItems": {
      "codeList": {
        "listItems": [
          {
            "codeValue": "KEY1",
            "shortName": "This is item 1"
          },
          {
            "codeValue": "KEY2",
            "shortName": "This is item 2"
          }
        ]
      }
    }
  }
}

我的课程是这样的:

 class Meta {
        [JsonProperty("/workers/assignments/myItems")]
        public ItemsMeta Items {get;set;}
    }

    class ItemsMeta {
        public CodeList codeList { get; set; }
    }

    class CodeList {
        public List<ListItem> listItems { get; set; }
    }

    public class ListItem {
        public string codeValue { get; set; }
        public string shortName { get; set; }
        public string longName { get; set; }
    }

但是var meta = JsonConvert.DeserializeObject<Entities.Generated.Meta>(json);对 Items 属性有一个空引用。

我究竟做错了什么?如果没有自定义 JSON 解析器,这可能吗?我已经尝试过 Newtonsoft 和 System.Text.Json。

JS管家

您的meta标签位于另一个对象或RootObject. 将其添加到您的模型并将您的 json 反序列化为该对象:

public class Meta
{
    [JsonProperty("/workers/assignments/myItems")]
    public ItemsMeta Items { get; set; }
}

public class ItemsMeta
{
    public CodeList codeList { get; set; }
}

public class CodeList
{
    public List<ListItem> listItems { get; set; }
}

public class ListItem
{
    public string codeValue { get; set; }
    public string shortName { get; set; }
    public string longName { get; set; }
}

public class Rootobject
{
    public Meta Meta { get; set; }
}

现在反序列化:

var root = JsonConvert.DeserializeObject<Rootobject>(json);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

序列化/反序列化嵌套的 POCO 属性而不在 json.net 中嵌套

F#中带有json.net的反序列化问题

使用json.net中的属性的两个可能的属性名称反序列化?

如何使用非标准(和不同的)属性名称反序列化JSON(在.NET中)

在json.net中由于反序列化错误类型而忽略属性

JSON.Net反序列化填充缺少的属性

DefaultContractResolver中的Json.net重写方法反序列化私有设置程序

在JSON.NET中反序列化具有不同名称的对象列表

Json.Net序列化/反序列化类名称属性C#

使用JSON.NET序列化/反序列化动态属性名称

使属性反序列化但不使用json.net序列化

使用json.net对对象属性进行条件序列化/反序列化

带有JSON数据的大型POST请求不会在ASP.NET Core 4.6.1中反序列化

在JSON.NET中反序列化接口对象

在JSON.NET中反序列化IList <Interface>

使用带有JSON.NET C#的内部类的json文件反序列化

ASP.Net Core中的JSON序列化/反序列化

如何在angular2 +中序列化/反序列化.NET类型的JSON

.NET Core 3.1中使用System.Text.Json进行反序列化会导致空属性值

使用json.net中的非公共设置器反序列化公共属性

如何访问来自反序列化 json 字符串的 asp.net 对象中的属性

反序列化Json String .net

JSON反序列化对象-.NET

VB .NET JSON 反序列化

Json.net反序列化

Json .Net反序列化

C# JSON.net 没有正确创建对象作为反序列化字典中的值

如何在 JSON.NET 中反序列化具有嵌套对象列表的对象列表?

带有自动增量索引的.NET NewtonSoft JSON反序列化列表