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

Node.js生成符合微软翻译API要求的双引号JSON数组求助

解决Microsoft Translator Text API请求体格式问题的方案

核心思路

别用字符串替换手动凑JSON格式,直接用编程语言自带的JSON序列化工具,这是最稳妥的方式——能自动处理引号转义、键名格式问题,还能顺便搞定API的元素数量和字符数限制。

具体实现步骤(以JavaScript为例,其他语言逻辑通用)

  1. 把带单引号的原始文本整理成普通字符串数组
  2. 拆分数据以满足API限制:
    • 每组最多25个元素
    • 每组总字符数(含空格)不超过5000
  3. 用JSON序列化工具生成合规的请求体

示例代码

// 含单引号的原始字幕数据示例
const rawSubtitles = ["It's a test subtitle", 'Hello world', "Don't miss this line"];

// 处理数据分组并生成请求体的函数
function prepareRequestBodies(rawData) {
  const requestGroups = [];
  let currentGroup = [];
  let currentTotalChars = 0;

  for (const text of rawData) {
    const textLen = text.length;
    // 检查加入当前文本后是否触发限制
    if (currentGroup.length >= 25 || currentTotalChars + textLen > 5000) {
      requestGroups.push(currentGroup);
      currentGroup = [];
      currentTotalChars = 0;
    }
    currentGroup.push({ Text: text });
    currentTotalChars += textLen;
  }

  // 加入最后一组未完成的数据
  if (currentGroup.length > 0) {
    requestGroups.push(currentGroup);
  }

  // 把每组序列化为符合要求的JSON字符串
  return requestGroups.map(group => JSON.stringify(group));
}

// 生成可直接用的请求体
const validRequestBodies = prepareRequestBodies(rawSubtitles);
// 输出示例:[{"Text":"It's a test subtitle"},{"Text":"Hello world"},{"Text":"Don't miss this line"}]
console.log(validRequestBodies[0]);

关键说明

  • JSON.stringify会自动处理所有格式问题:键名强制用双引号,字符串里的单引号会被正确保留在双引号包裹的内容里,完全符合API要求。
  • 分组逻辑里的字符数计算要包含文本的所有字符(空格、单引号等),严格匹配API的5000字符上限。
  • 如果用Python,直接用json.dumps()序列化,分组逻辑完全一致;其他语言也都有对应的JSON序列化工具,原理相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:42:39