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

Node.js多层嵌套JSON:从Perspective API提取summaryScore整数值

Node.js 多层嵌套JSON值提取与类型转换实现

多层嵌套JSON的取值逻辑和单层取值没有本质区别,只需要按照接口返回的结构层级,顺着属性路径逐层访问即可。

核心取值路径

你需要的summaryScore下的value值,完整访问链路为:
接口返回解析后的对象.attributeScores.TOXICITY.summaryScore.value

可直接复用的代码实现

基础场景(Node.js 14及以上版本,支持可选链语法)

假设apiRes是Perspective API返回的、已经完成JSON解析的JS对象,可直接通过如下代码取值并转整数:

// 安全取值,即使中间某层字段缺失也不会触发代码崩溃
const toxicityFloatScore = apiRes?.attributeScores?.TOXICITY?.summaryScore?.value
// 浮点值转整数,根据自身需求选择转换规则
// 1. 直接四舍五入:示例中的0.9345592 转换后为1
const intScore = Math.round(toxicityFloatScore)
// 2. 若需要0-100范围的整数评分,可先乘100再转换:示例值转换后为93
// const intScore = Math.round(toxicityFloatScore * 100)

低版本Node.js兼容写法

如果你的运行环境是14以下的Node.js版本,不支持可选链?.语法,需要手动判断每一层字段是否存在,避免因接口返回缺字段直接报错:

let toxicityFloatScore = null
// 逐层判断字段存在性
if (
  apiRes.attributeScores &&
  apiRes.attributeScores.TOXICITY &&
  apiRes.attributeScores.TOXICITY.summaryScore
) {
  toxicityFloatScore = apiRes.attributeScores.TOXICITY.summaryScore.value
}
// 整数转换逻辑同基础场景
const intScore = Math.round(toxicityFloatScore)

常见踩坑提示

  • 接口返回的原始内容如果是JSON字符串,必须先通过JSON.parse(原始返回内容)转成JS对象后才能读取属性,直接对字符串访问属性会拿到全undefined
  • 后续如果需要读取Perspective API其他检测维度(比如严重毒性、身份攻击等)的分数,只需要把路径中的TOXICITY替换成对应维度的字段名即可,整体取值逻辑不变
  • 不要被多层嵌套的结构复杂度误导:本质就是把完整路径上的每一层属性用.连接访问,和读取obj.name这类单层值的逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 22:57:02