
本文将介绍如何从 JSON 数据中移除特定的属性,例如 $id 和 $values,从而获得更清晰的数据结构。这在处理由后端序列化的数据时非常有用,特别是当这些属性对于前端展示或进一步处理没有实际意义时。
核心思路是编写一个递归函数,遍历 JSON 对象的每一个属性,判断属性名是否为需要移除的属性(例如 $id),并进行相应的处理。如果属性值是对象或数组,则递归调用该函数进行进一步处理。
以下是 JavaScript 实现的 sanitizeJson 函数:
function sanitizeJson(obj) {
// 对象是数组?递归处理每个元素
if (Array.isArray(obj)) {
return obj.map(sanitizeJson);
}
// 对象是非 null 对象
else if (typeof obj === 'object' && obj !== null) {
// 同时存在 '$id' 和 '$values' 属性?处理 '$values' 属性
if (obj.hasOwnProperty('$id') && obj.hasOwnProperty('$values')) {
return sanitizeJson(obj['$values']);
}
// 从 '$id' 属性创建一个新对象,并处理剩余的属性
return Object.fromEntries(
Object.entries(obj)
.filter(([key]) => key !== '$id')
.map(([key, value]) => [key, sanitizeJson(value)])
);
}
return obj;
}代码解释:
使用示例:
const json = '{"$id":"1","$values":[{"$id":"2","prop1":"result","prop2":"result","prop3":{"$id":"3","$values":[{"$id":"4","prop1":"result","prop2":null},{"$id":"4","prop1":"result","prop2":null}]}}]}';
const jsonObject = JSON.parse(json);
const result = JSON.stringify(sanitizeJson(jsonObject), null, '\t');
console.log(result);输出结果:
[
{
"prop1": "result",
"prop2": "result",
"prop3": [
{
"prop1": "result",
"prop2": null
},
{
"prop1": "result",
"prop2": null
}
]
}
]通过使用 sanitizeJson 函数,可以有效地从 JSON 数据中移除 $id 和 $values 属性,从而获得更清晰、简洁的数据结构。这种方法适用于处理由后端序列化,并包含冗余属性的 JSON 数据,方便前端展示和进一步处理。根据实际需求,可以灵活修改该函数,以移除其他不需要的属性。
以上就是从 JSON 中移除 "$id" 和 "$values" 属性的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号