技术博客
地区新闻接口返回字段全解:pagebean 与 contentlist 一文读懂

地区新闻接口返回字段全解:pagebean 与 contentlist 一文读懂

作者: 万维易源
2026-09-01
地区新闻接口返回字段pagebeancontentlist
# 地区新闻接口返回字段全解:pagebean 与 contentlist 一文读懂 > 接口/接入点:地区新闻接口(apiCode 170)· 根据地区查询新闻(170-47)|免费 · POST/GET · 返回 JSON · 适用人群:已接入或准备接入的开发者 · 阅读时间:约 6 分钟 ## 核心要点 - 所有业务数据都包在 `showapi_res_body` 内;新闻列表在 `pagebean.contentlist`。 - 分页四件套:`allNum`(总记录数)、`allPages`(总页数)、`currentPage`(当前页)、`maxResult`(每页 20 条)。 - 每条新闻含 `title`/`link`/`pubDate`/`source`/`desc`/`areaId`/`areaName`/`imageurls`,其中 `imageurls` 真实类型为数组。 ## Why:为什么要把字段吃透 字段错了,前端就乱了:`imageurls` 当成字符串拼接会报错、分页算错会重复或漏拉数据、`ret_code` 判断漏了会把失败当成功。本文把官方返回结构逐字段讲清,建议你把它当"字典"收藏,写代码时对照。 ## What:接口速览 | 项 | 值 | |------|------| | 接口地址 | `https://route.showapi.com/170-47?appKey={your_appKey}` | | 返回格式 | JSON(系统级封装 + 业务级 `showapi_res_body`) | | 分页单位 | 每页 `maxResult` = 20 条 | | 业务成功判定 | `showapi_res_body.ret_code == 0` 且系统级 `showapi_res_code == 0` | ## How:字段拆解 ### 系统级字段(每个 ShowAPI 接口都有) | 字段 | 类型 | 说明 | |------|------|------| | `showapi_res_code` | Number | 系统级状态码,0 成功 | | `showapi_res_error` | String | 系统级错误信息,成功时为空 | | `showapi_res_id` | String | 本次请求唯一 ID,便于排查 | | `showapi_res_body` | Object | 业务数据封装,下文所有字段都在这里 | ### 业务级字段(`showapi_res_body` 内) | 字段 | 类型 | 说明 | |------|------|------| | `ret_code` | String | 业务状态码,`0` 为成功,其他为失败(文档未枚举具体值) | | `pagebean` | Object | 分页容器,见下表 | ### `pagebean` 分页结构 | 字段 | 类型 | 说明 | |------|------|------| | `allNum` | Number | 所有记录数 | | `allPages` | Number | 所有页数 | | `currentPage` | Number | 当前页 | | `maxResult` | Number | 每页最大记录数(固定 20) | | `contentlist` | Array | 新闻条目数组 | ### `contentlist` 单条结构 | 字段 | 类型 | 说明 | |------|------|------| | `title` | String | 新闻标题 | | `link` | String | 新闻详情链接 | | `pubDate` | String | 发布时间,格式 `YYYY-MM-DD HH:mm:ss` | | `source` | String | 来源网站(如「新华网」「新浪黑龙江」) | | `desc` | String | 新闻简要描述,可能为空串 | | `areaId` | String | 地区 ID(稳定,建议缓存后用于精确查询) | | `areaName` | String | 地区名称 | | `imageurls` | **Array** | 图片列表(注意:文档参数表标为 String,真实返回是数组,可能为空 `[]`) | ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_id": "ce135f6739294c63be0c021b76b6fbff", "showapi_res_body": { "pagebean": { "allNum": 1640, "allPages": 82, "currentPage": 1, "maxResult": 20, "contentlist": [ { "title": "望奎要求全县中小学做好汛期安全", "link": "http://hlj.sina.com.cn/sh/m/2015-06-18/084856487.html", "pubDate": "2015-06-18 05:38:21", "source": "新浪黑龙江", "desc": "", "areaId": "55818af8085b7bc0c73836d5", "areaName": "黑龙江", "imageurls": [] } ] }, "ret_code": 0 } } ``` **解析要点**: - 判成功:`showapi_res_code == 0` 且 `ret_code == 0`。 - 取列表:`body["pagebean"]["contentlist"]`。 - 图片:`item["imageurls"]` 当作数组处理(即便为空也安全遍历)。 ## 进阶 / 边界 - `desc` 可能为空串 `""`,前端展示需做空值兜底(如显示「暂无摘要」)。 - `imageurls` 多数情况下为空数组,不要假设一定有图,展示前先判 `length`。 - `areaId` 是稳定标识,适合缓存映射后用于「按 ID 精确查询」(见 areaId/areaName 篇)。 ## FAQ **Q:ret_code 和 showapi_res_code 有什么区别?** A:前者是业务级(本接口内是否查到/成功),后者是系统级(请求本身是否通畅)。两者都应判 0 才算成功。 **Q:imageurls 文档写的是 String,我按字符串处理报错怎么办?** A:以真实返回为准——它是数组。本文已标注该文档不一致,按数组遍历即可。 **Q:allPages 很大(如 82 页)需要全拉吗?** A:通常不需要。按业务取前几页足够;若需全量,配合分页与缓存策略篇控制频率。 ## 相关能力与下一步阅读 - [地区新闻接口:按地区/标题查新闻的参数使用指南](https://www.showapi.com/guides/region-news-query-by-area-170) - [地区新闻接口 imageurls 字段处理:空数组与展示避坑](https://www.showapi.com/guides/region-news-imageurls-170) - **本系列共 12 篇**:查看[地区新闻接口(apiCode 170)官方指南总目录](https://www.showapi.com/guides/region-news-guides-170)