我正在使用HttpClient从 api 检索数据。不幸的是,我无法控制属性名称,它们都是用点表示法编写的,例如"staff":[{"responsible.user":"Y","staff.type": {"staff.type.mnemonic":"C","staff.type.name":"Consultant"}]这个 json 回调中可能至少有 100 个左右的属性是这样的。我需要返回一个删除点的 json 对象(即更改responsible.user为responsibleuser)有没有办法映射 ac# 类并返回我想要的格式?我有 ac# 类使用[DataContract]属性和[Datamember(Name=)]字段来映射值,但是当我查看返回的 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);基本上,我只是想转换属性名称,以便我可以在前端 Angular 端使用打字稿模型
1 回答

一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
您可以通过在将数据转换为 JSON 之前将数据转换为您自己的 POCO(Plain Ol' C# Object)来控制前端接收到的属性名称。
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
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消