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

如何根据输入字符串从嵌套JSON中获取对应商家或武器的相关数据?

实现方案

以下以JavaScript为例实现该查询逻辑,其他编程语言思路一致:

核心思路

  1. 首先判断输入值是否为预设的两个商家名blacksmith或merchant,匹配成功直接返回对应商家的全量商品数据
  2. 若不是商家名,遍历所有商家下的全部武器,匹配武器name字段与输入值一致的条目,匹配成功返回该武器的完整属性
  3. 未匹配到任何内容时可返回自定义错误提示

完整实现代码

// 原始数据源
const shopData = {
    "blacksmith": {
        "sword": {
            "name": "Altar of skies",
            "description": "A really powerful sword",
            "rarity": 5
        },
        "bow": {
            "name": "Hell's string",
            "description": "A really powerful bow",
            "rarity": 4
        },
        "spear": {
            "name": "Heart piercer",
            "description": "A really powerful spear",
            "rarity": 5
        }
    },
    "merchant": {
        "sword": {
            "name": "Wind's wand",
            "description": "A really powerful sword",
            "rarity": 5
        },
        "bow": {
            "name": "Heaven's string",
            "description": "A really powerful bow",
            "rarity": 4
        },
        "spear": {
            "name": "Digger",
            "description": "A really powerful spear",
            "rarity": 5
        }
    }
}

// 查询函数
function queryShop(inputStr) {
    // 优先匹配商家名
    const merchantList = Object.keys(shopData)
    if (merchantList.includes(inputStr)) {
        return {
            [inputStr]: shopData[inputStr]
        }
    }
    // 匹配武器名称
    for (const merchant of Object.values(shopData)) {
        for (const weapon of Object.values(merchant)) {
            if (weapon.name === inputStr) {
                return weapon
            }
        }
    }
    // 无匹配结果
    return {
        "msg": "未找到对应商家或武器信息"
    }
}

测试示例

// 测试示例1:输入商家名
console.log(queryShop("merchant"))
// 输出与示例1一致的商家全量数据

// 测试示例2:输入武器名
console.log(queryShop("Altar of skies"))
// 输出与示例2一致的武器属性数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:45:05