,可以使用以下步骤:
以下是一个示例的JavaScript代码实现:
function removeNonMatching(jsonString, jsonPattern) {
let jsonObj = JSON.parse(jsonString);
function traverse(obj) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
traverse(obj[key]); // 递归遍历子对象
} else {
if (!jsonPattern.hasOwnProperty(key) || !matchPattern(obj[key], jsonPattern[key])) {
delete obj[key]; // 删除不符合模式的键值对
}
}
}
}
}
function matchPattern(value, pattern) {
// 比较值与模式的逻辑,可以根据具体需求进行实现
// 这里假设模式为字符串,表示要求值与该字符串相等
return value === pattern;
}
traverse(jsonObj);
return JSON.stringify(jsonObj);
}
const jsonString = '{"name": "John", "age": 30, "address": "123 Main St", "hobbies": ["reading", "gaming"]}';
const jsonPattern = {'name': 'John', 'age': 30};
const result = removeNonMatching(jsonString, jsonPattern);
console.log(result);
上述代码将会输出:{"name":"John","age":30}
,只保留与模式匹配的键值对。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云