如何移除GET响应中的"d"节点?ODATA 2.0适配方案
问题
团队提供的GET接口返回的JSON响应里带了个特殊的"d"节点,想知道这个节点的存在原因,以及怎么处理它来完成JSON反序列化。之前找团队求助,对方让改用XML格式,但我想继续用JSON处理。
原因分析
这个"d"节点是OData 2.0规范的标准结构,常见于SAP相关的接口实现中。OData 2.0的JSON响应要求用"d"作为根节点包裹实际业务数据,属于该版本协议的强制格式。
解决方法
无需强行移除"d"节点,最适配的方式是创建通用包装类来兼容该结构,以C#为例:
public class ODataWrapper<T> { [JsonProperty("d")] public T BusinessData { get; set; } }
反序列化时,先将响应内容序列化为ODataWrapper<你的业务模型类>,再通过BusinessData属性即可获取实际需要的业务数据,完成反序列化流程。
补充确认:经核实该节点确实来自SAP采用的OData 2.0规范,最终通过创建通用ODataWrapper类完成了结果处理。
内容的提问来源于stack exchange,提问作者Johnny Wu
相关产品推荐
相关产品推荐

