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

如何在PnP Search v4中用Handlebars解析JSON数组并格式化展示?

解决方案

要在PnP Search v4的Handlebars模板中将JSON数组渲染为表格,需要完成两步:把托管属性里的JSON字符串解析成可遍历的对象数组,再循环生成表格行。

1. 注册自定义Handlebars Helper

PnP Search默认没有内置JSON解析的辅助函数,需要先添加一个parseJSON helper来转换字符串。在你的PnP Search扩展代码或配置脚本中加入:

Handlebars.registerHelper('parseJSON', function(jsonString) {
    try {
        return JSON.parse(jsonString);
    } catch (err) {
        console.error('JSON解析失败:', err);
        return [];
    }
});

2. 编写Handlebars模板

在模板文件中用以下代码渲染表格:

{{#if RefinableString109}}
    {{#with (parseJSON RefinableString109)}}
        <table style="border-collapse: collapse; width: 100%;">
            <thead>
                <tr>
                    <th style="border: 1px solid #ddd; padding: 8px;">Owner #</th>
                    <th style="border: 1px solid #ddd; padding: 8px;">Name</th>
                </tr>
            </thead>
            <tbody>
                {{#each this}}
                    <tr>
                        <td style="border: 1px solid #ddd; padding: 8px;">{{OwnerNumber}}</td>
                        <td style="border: 1px solid #ddd; padding: 8px;">{{OwnerName}}</td>
                    </tr>
                {{/each}}
            </tbody>
        </table>
    {{/with}}
{{else}}
    <p>无可用的所有者数据</p>
{{/if}}

说明

  • 用{{#if RefinableString109}}判断是否存在数据,避免空值引发报错
  • (parseJSON RefinableString109)将托管属性的JSON字符串转为数组,{{#with}}块把数组设为当前上下文
  • {{#each this}}遍历数组中的每个对象,渲染对应的表格行
  • 代码里加入了基础表格样式,你可以根据需求调整CSS

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:47:12