如何通过SharePoint REST API获取带前缀/后缀符号的数字列数据?
SharePoint数字列的前缀/后缀是客户端渲染层的格式配置,不会存储在列表项数据里,所以常规的列表项查询(包括取HTML字段值)只能拿到纯数字。要获取带格式的显示值,得按以下步骤处理:
1. 先获取数字列的格式配置
调用字段详情的REST端点,拿到列的前缀/后缀规则:
/_api/web/lists/getbytitle('你的列表名')/fields/getbytitle('你的数字列名')
返回的JSON里,重点看NumberFormat属性:
- 如果是内置格式(比如百分比),
NumberFormat.Format会是"Percentage"这类值 - 如果是自定义前缀/后缀,
NumberFormat.CustomFormatString会保存具体的格式字符串(比如"0%")
用JShare库的话,可以通过List.getFieldByTitle()方法获取字段对象,然后读取对应的属性。如果库没有封装直接读取NumberFormat的方法,也可以直接发送上述GET请求,手动解析响应JSON。
2. 自行拼接显示值
拿到格式规则后,把获取到的纯数字和前缀/后缀拼接:
- 例1:自定义后缀为
%,数字是100,直接拼接成"100%" - 例2:内置百分比格式(SP通常存储小数,比如1.0对应100%),则把数字乘以100再加
%
简单Java示例(结合JShare):
// 假设已拿到列表项的数字值和字段的CustomFormatString Double numericValue = listItem.getDouble("你的数字列内部名"); String customFormat = field.getJson().getJSONObject("NumberFormat").getString("CustomFormatString"); String displayValue = String.format(customFormat, numericValue);
3. 可选:用RenderListDataAsStream端点直接拿渲染后的值
如果不想自己拼接,可以调用/_api/web/lists/getbytitle('你的列表名')/renderlistdataasstream端点,这个端点会返回SharePoint前端渲染后的列表数据,里面包含带格式的显示值。不过这个端点的响应结构比较复杂,需要解析对应的字段值,且JShare库可能没有直接封装,需要自己构造POST请求(请求体需要包含视图等参数)。
内容的提问来源于stack exchange,提问作者Ajit Hogade
相关产品推荐
相关产品推荐

