如何检查指定guildID是否存在于已解析的JSON对象中
校验指定guildID是否存在于已解析JSON对象的实现方法
你已经完成JSON解析后,得到的是对应编程语言的键值对结构(比如Python的字典、JavaScript的对象),直接校验guildID是否是该结构的顶层键即可,不需要额外遍历内容。
Python 实现
解析完JSON得到的是dict类型,直接用in关键字判断即可:
# 此处parsed_json为你已经解析完成的JSON对象 target_guild_id = "893782530879258635" # 示例1:存在对应guildID的场景 parsed_json = {"893782530879258635": {}} print(target_guild_id in parsed_json) # 输出 True # 示例2:空JSON对象场景 parsed_json = {} print(target_guild_id in parsed_json) # 输出 False
注意:如果你的guildID是数字类型,需要先转成字符串再判断,因为JSON的键默认是字符串类型
JavaScript 实现
解析完JSON得到的是普通对象,推荐用hasOwnProperty()方法或者Object.hasOwn()判断:
// 此处parsedJson为你已经解析完成的JSON对象 const targetGuildId = "893782530879258635" // 示例1:存在对应guildID的场景 const parsedJson = {"893782530879258635": {}} console.log(parsedJson.hasOwnProperty(targetGuildId)) // 输出 true // 示例2:空JSON对象场景 const emptyJson = {} console.log(Object.hasOwn(emptyJson, targetGuildId)) // 输出 false
ES6+环境更推荐用Object.hasOwn(),不受对象自身重写的hasOwnProperty方法影响,稳定性更高。
其他语言通用逻辑
不管用什么编程语言,核心操作都是两步:
- 确认你要校验的guildID的类型和JSON键的类型一致(绝大多数场景都是字符串类型)
- 调用语言对应判断键是否存在于字典/映射/对象顶层属性的内置方法即可,内置方法效率远高于手动遍历所有键。
内容的提问来源于stack exchange,提问作者ProfitableMoon
相关产品推荐
相关产品推荐

