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
相关产品推荐
相关产品推荐

