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

Node.js中如何在JSON对象内查找指定字符串?

在Node.js中检查指定字符串是否存在于JSON对象中

核心思路

你的JSON是多层嵌套结构(数组包含对象,对象包含数组),需要通过递归遍历的方式,逐层检查每一个值是否与目标字符串匹配。如果需要判断字符串是否被包含(比如abcde里包含abcd),可以调整判断逻辑。

实现代码

const testjson = require('./jsontest.json');
const targetString = 'abcd';

// 递归检查函数
function checkStringExists(obj, target) {
    // 处理数组类型,遍历每个元素递归检查
    if (Array.isArray(obj)) {
        for (const item of obj) {
            if (checkStringExists(item, target)) {
                return true;
            }
        }
    } 
    // 处理对象类型,遍历所有属性值递归检查
    else if (typeof obj === 'object' && obj !== null) {
        for (const key in obj) {
            if (checkStringExists(obj[key], target)) {
                return true;
            }
        }
    } 
    // 处理字符串类型,直接匹配
    else if (typeof obj === 'string') {
        // 精确匹配
        return obj === target;
        // 若需检查是否包含目标字符串,替换为:return obj.includes(target);
    }
    // 非字符串类型直接返回false
    return false;
}

// 执行检查并输出结果
const exists = checkStringExists(testjson, targetString);
console.log(`字符串'${targetString}'是否存在:${exists}`);

代码说明

  • 递归函数checkStringExists会逐层遍历JSON的所有嵌套结构,一旦找到匹配的字符串就立即返回true,无需继续遍历,提升效率
  • 可根据需求切换匹配逻辑:精确匹配或包含匹配

测试结果

针对你提供的JSON文件,执行代码后会输出:字符串'abcd'是否存在:true,因为第一个对象的j1数组中存在精确匹配的abcd。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:33:19