You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用USPS CityStateLookupResponse API反序列化XDocument到类返回null如何解决

问题根源

你的自定义类结构与USPS返回的XML结构不匹配。从响应示例可以看到,<City>、<State>、<Zip5>以及ID属性都被包裹在<ZipCode>子节点下,你将这些属性直接定义在根类CityStateLookUpResponse下,序列化器无法匹配到对应节点,因此反序列化结果为null。

修正方案

调整实体类结构,新增ZipCode子类承载子节点属性:

[Serializable()]
[XmlRoot("CityStateLookupResponse", IsNullable = false)]
public class CityStateLookUpResponse
{
    [XmlElement("ZipCode")]
    public ZipCode ZipCode { get; set; }
}

public class ZipCode
{
    [XmlAttribute("ID")]
    public string Id { get; set; }

    [XmlElement("City")]
    public string City { get; set; }

    [XmlElement("State")]
    public string State { get; set; }

    [XmlElement("Zip5")]
    public string Zip { get; set; }
}

调整后无需修改原有反序列化逻辑,反序列化成功后可通过返回对象.ZipCode.City、返回对象.ZipCode.State的形式读取对应属性值。如果需要同时查询多个邮编,可将根类中的ZipCode属性改为List<ZipCode>类型即可适配多个ZipCode节点的返回结果。

内容的提问来源于stack exchange,提问作者user351479

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:45:03