在JavaScript中,可以使用一些库或方法来实现在同一查询中返回具有JSON路径的子节点和父节点。以下是一种常见的实现方式:
function findNodeWithParent(json, path) {
const result = {
parent: null,
child: null
};
function traverse(obj, parentPath) {
for (let key in obj) {
const currentPath = parentPath ? `${parentPath}.${key}` : key;
if (currentPath === path) {
result.parent = obj;
result.child = obj[key];
return;
}
if (typeof obj[key] === 'object') {
traverse(obj[key], currentPath);
}
}
}
traverse(json, '');
return result;
}
// 示例用法
const json = {
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
}
};
const result = findNodeWithParent(json, 'address.city');
console.log(result.parent); // 输出:{ "street": "123 Main St", "city": "New York" }
console.log(result.child); // 输出:"New York"
这个示例中的findNodeWithParent
函数接受一个JSON对象和一个JSON路径作为参数,然后通过递归遍历JSON对象来查找匹配路径的节点,并返回该节点的父节点和子节点。
请注意,以上示例仅为演示目的,并未涉及腾讯云的具体产品。你可以根据实际需求选择适合的腾讯云产品来实现相关功能。
领取专属 10元无门槛券
手把手带您无忧上云