Angular 13中如何检查JSON是否存在指定字段
在Angular 13中检查JSON字段是否存在的方法
JSON完全可以实现类似XML SelectSingleNode的字段检查功能,在Angular基于的TypeScript/JavaScript里有多种实用方式:
直接访问+可选链判断
如果你知道JSON的嵌套结构,比如要检查对应/My_RootNode/id的字段,用可选链操作符?.可以安全判断,避免嵌套节点不存在时抛出错误:// 示例JSON结构 const myJson = { My_RootNode: { id: 123 } }; if (myJson?.My_RootNode?.id !== undefined) { // 字段存在,执行后续逻辑 }用
hasOwnProperty精确检查
这个方法可以判断对象自身是否包含目标属性(排除原型链上的属性),适合需要严格判断的场景:if (myJson.hasOwnProperty('My_RootNode')) { if (myJson.My_RootNode.hasOwnProperty('id')) { // 嵌套字段存在 } }动态解析路径(模拟XPath)
如果你从数据库拿到的是类似"/My_RootNode/id"的路径字符串,可以写个工具函数动态解析路径,和XML的SelectSingleNode功能完全对应:function checkJsonFieldExists(jsonObj: any, path: string): boolean { // 移除开头斜杠并拆分路径片段 const pathSegments = path.replace(/^\//, '').split('/'); let currentNode = jsonObj; for (const segment of pathSegments) { if (!currentNode || !currentNode.hasOwnProperty(segment)) { return false; } currentNode = currentNode[segment]; } return true; } // 使用示例 const isFieldExists = checkJsonFieldExists(myJson, "/My_RootNode/id");
内容的提问来源于stack exchange,提问作者Itay.B
相关产品推荐
相关产品推荐

