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

如何通过PHP循环生成Adobe Sign API的mergeFieldInfo JSON结构?

当然可以!手动写60多个字段确实效率低下,用PHP遍历数组绝对是高效解决这个问题的最优方案。我来给你一步步拆解实现方式:

核心实现思路

本质就是利用PHP的遍历功能,把你拆分好的字段数组(确保键名和PDF字段名一一对应),批量转换成Adobe Sign API要求的mergeFieldInfo结构,最后再转成JSON即可。

1. 准备字段映射数组

首先确保你拆分后的数组,键名和PDF文档里的字段名称完全一致(比如数组键是Trading Name,对应PDF里的字段也叫Trading Name),这样遍历的时候直接用键名当fieldName,值当defaultValue就行。示例数组如下:

// 这是某一个PDF对应的公司信息字段数组
$companyFields = [
    'Trading Name' => 'ABC Trading Co.',
    'Company Website' => 'https://abctrading.com',
    // 剩下60+个字段按这个格式补充...
];

2. 遍历生成mergeFieldInfo结构

用foreach循环遍历数组,把每个键值对转换成API需要的数组结构,存到新数组中:

$mergeFieldInfo = [];

foreach ($companyFields as $fieldName => $defaultValue) {
    $mergeFieldInfo[] = [
        'defaultValue' => $defaultValue,
        'fieldName' => $fieldName
    ];
}

3. 转换为JSON格式

最后用json_encode()把数组转成符合要求的JSON字符串,加JSON_PRETTY_PRINT参数可以让输出更易读:

$jsonOutput = json_encode(['mergeFieldInfo' => $mergeFieldInfo], JSON_PRETTY_PRINT);

// 可以直接输出查看结果,或者传给Adobe Sign API
echo $jsonOutput;

处理多PDF场景

因为你有3个不同的PDF,每个字段集合不同,你可以把每个PDF的字段数组放到一个多维数组里,批量处理:

// 三个PDF对应的字段集合,键为PDF标识,值为该PDF的字段键值对
$pdfFieldSets = [
    'contract_pdf' => [/* 合同PDF的60+字段 */],
    'invoice_pdf' => [/* 发票PDF的60+字段 */],
    'quote_pdf' => [/* 报价单PDF的60+字段 */]
];

// 遍历每个PDF,生成对应JSON
foreach ($pdfFieldSets as $pdfName => $fields) {
    $mergeFieldInfo = [];
    foreach ($fields as $fieldName => $defaultValue) {
        $mergeFieldInfo[] = [
            'defaultValue' => $defaultValue,
            'fieldName' => $fieldName
        ];
    }
    $json = json_encode(['mergeFieldInfo' => $mergeFieldInfo], JSON_PRETTY_PRINT);
    // 这里可以把$json传给对应PDF的API请求,或者保存备用
    echo "{$pdfName}对应的JSON:\n{$json}\n\n";
}

额外注意事项

  • 务必保证数组键名和PDF字段名完全匹配,包括大小写、空格,否则Adobe Sign无法识别对应字段。
  • 如果需要跳过空值字段,可以在遍历中加入判断:
foreach ($companyFields as $fieldName => $defaultValue) {
    // 跳过空值字段(可选,根据你的业务需求调整)
    if (empty($defaultValue)) continue;
    $mergeFieldInfo[] = [
        'defaultValue' => $defaultValue,
        'fieldName' => $fieldName
    ];
}

这样不管有多少字段,几秒钟就能生成符合要求的JSON结构,再也不用手动重复劳动了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:26:50