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

PHP:如何动态获取未知键名的nativeName中的common字段值?

问题描述

给定某API返回的JSON片段如下:

"name": {
    "common": "Italy",
    "official": "Italian Republic",
    "nativeName": {
        "ita": {
            "official": "Repubblica italiana",
            "common": "Italia"
        }
    }
}

我们需要动态获取nativeName下对应common字段的值,不管nativeName里的键名(比如示例里的ita)怎么变化,都能拿到对应的本土通用名称。

简洁实现方案

以JavaScript为例,提供几种无需依赖固定键名的写法:

方案一:直接取第一个本土名称的common值

这是最简洁的写法,利用Object.values()把nativeName里的所有值转成数组,直接取第一个元素的common字段(一般每个国家的nativeName下只会有一组本土名称数据):

function getNativeCommonName(nameObj) {
  return Object.values(nameObj.nativeName)[0]?.common;
}
  • 补充:?.是可选链操作符,若nativeName为空或没有common字段,会返回undefined,避免代码报错。

方案二:先获取键名再取值

如果需要明确拿到键名后再取值,可以用这种写法:

function getNativeCommonName(nameObj) {
  const firstNativeKey = Object.keys(nameObj.nativeName)[0];
  return nameObj.nativeName[firstNativeKey]?.common;
}

方案三:获取所有本土通用名称(兼容多场景)

如果nativeName下可能存在多组本土名称数据,想要把所有common值都提取出来,可以返回一个数组:

function getAllNativeCommonNames(nameObj) {
  return Object.values(nameObj.nativeName)
    .map(nativeItem => nativeItem?.common)
    .filter(Boolean); // 过滤掉undefined的无效值
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:16:11