如何将DOT符号格式化的JSON属性转换为C#类



我正在使用HttpClient从API检索数据。不幸的是,我无法控制属性名称,它们都是用点表示法写的,例如

"staff":[{"responsible.user":"Y","staff.type":
    {"staff.type.mnemonic":"C","staff.type.name":"Consultant"}]

这样的JSON回调中可能至少有100个左右的属性。我需要返回一个删除点的JSON对象(即将responsible.user更改为responsibleuser)有没有办法映射C#类并返回我想要的格式?

我使用 [DataContract]属性和 [Datamember(Name=)]字段映射值的C#类来映射值,但是当我查看返回的JSON时,它们仍然具有属性中的点。

这是我开始在控制器中使用的

 using(HttpClient c = new HttpClient())
        {
            c.DefaultRequestHeaders.Authorization =
               new System.Net.Http.Headers.AuthenticationHeaderValue(
                   "Bearer",
                   "Cazqmx-TTHOOfnJy92SRng=="
               );
            var link = string.Format(AmsApiGet, "6894998", "TYEE");
            var res = await c.GetStringAsync(link);
            TaskAPI task = new TaskAPI();
            task = JsonConvert.DeserializeObject<TaskAPI>(res);
            return Ok(task);

基本上,我只是在尝试转换属性名称,以便我可以在前端角侧使用打字稿

您可以通过将数据转换为自己的poco(普通的ol'C#对象)来控制前端接收到的属性名称,然后再将其转换为JSON。

TaskAPI task = new TaskAPI();
List<myPOCO> list = new List<myPOCO>();
foreach (var item in res)
  list.Add(new myPOCO(item)); //all your mapping is in the POCO Constructor
task = JsonConvert.DeserializeObject(list); //or whatever syntax it would be

相关内容

  • 没有找到相关文章

最新更新