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

使用MarkEmbling库读取postcodes.io数据转可读字符串遇阻求助

解决Postcodes.io接口返回结果转为可读字符串并提取指定信息的问题

我来帮你搞定这个问题!你现在遇到的情况是因为直接调用result.ToString()时,默认方法只会返回对象的类型完全限定名(也就是你看到的那种不可读格式),而不是提取对象里的实际属性值。咱们只需要直接访问返回对象的对应属性,再拼接成可读字符串就好啦。

问题原因

PostcodesIOClient.Lookup()方法返回的是一个强类型对象(比如PostcodeResponse类),它包含了邮编对应的各类信息属性,但默认的ToString()方法没有被重写,所以无法直接输出可读内容。

解决方案代码

直接提取你需要的Town(城镇)、County(郡)、Region(地区)属性,拼接成友好的字符串:

var inputPostcode = textBox1.Text; 
var client = new PostcodesIOClient(); 
var postcodeResult = client.Lookup(inputPostcode); 

// 拼接成可读的信息字符串,同时处理空值情况
string readableResult = $"城镇: {postcodeResult.Town ?? "暂无数据"}\n郡: {postcodeResult.County ?? "暂无数据"}\n地区: {postcodeResult.Region ?? "暂无数据"}";

MessageBox.Show(readableResult);

额外说明

  1. 属性名称确认:如果发现某个属性名称不对(比如Town不存在),可以查看MarkEmbling.PostcodesIO库的模型定义,通常它会把Postcodes.io接口返回的字段映射成直观的属性名,比如接口里的admin_district对应County,town对应Town,region对应Region。
  2. 空值处理:加上?? "暂无数据"是为了避免某个属性为空时显示null,让输出更友好。
  3. 更多属性:如果需要其他信息(比如经度纬度),可以直接访问postcodeResult的对应属性,比如postcodeResult.Longitude、postcodeResult.Latitude。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:57:02