如何从JSON对象中删除索引
什么是JSON?
JSON代表JavaScript对象表示法。它是一种用于结构化数据的格式。当数据从服务器发送到网页时使用此格式。 JSON是“自描述”的,易于理解。它取代了XML数据交换格式。与XML相比,它易于构造数据。它支持像数组和对象这样的数据结构以及在服务器上快速执行的JSON文档。
JSON语法规则 –
- 数据应以键:值对形式出现
- 数据之间用逗号(’,’)分隔
- 花括号({})用于表示对象
- 方括号([])用于表示数组
它用于什么?
与XML一样,它是一种格式化数据的方式之一。当数据从服务器发送到网页时使用此格式。
预先要求 –
- 已安装Node.js
语法 –
var json_object = [{
"property_1" : "property_value_1",
"property_2" : "property_value_2"
},
{
"property_1" : "property_value_1",
"property_2" : "property_value_2",
"property_3" : "property_value_3"
}]
现在,为了从此JSON对象中删除任何索引,我们将学习下面解释的不同方法 –
- 使用splice方法。
- 使用delete属性。
- 使用null。
使用 splice()方法 : 此方法用于通过删除现有元素和/或添加新元素来修改内容。
在这里,我们只关注如何使用splice来删除元素。
语法:
Object.splice(index, remove_count )
示例1: 在此示例中,我们将删除对象的第一个索引处的元素。
var Data_Structures = [
{
"Name": "Trees",
"Course": "Introduction of Trees",
"Content": ["Binary Tree", "BST",
"Generic Tree"]
},
{
"Name": "Graphs",
"Topics": ["BFS", "DFS", "Topological Sort"]
}
]
console.log("Object Before deleting : ");
console.log(Data_Structures);
console.log("Using splice for Deleting object at index 0");
Data_Structures.splice(0, 1);
console.log("Object Post Deleting : ");
console.log(Data_Structures);
如何运行此代码?
- 打开命令提示符。
- 使用cd命令进入保存JSON文件的目录。
- 现在只需键入以下命令:
node file_name
输出:
Object Before deleting :
[
{
Name: 'Trees',
Course: 'Introduction of Trees',
Content: [ 'Binary Tree', 'BST', 'Generic Tree' ]
},
{ Name: 'Graphs', Topics: [ 'BFS', 'DFS', 'Topological Sort' ] }
]
Using splice for Deleting object at index 0
Object Post Deleting :
[ { Name: 'Graphs', Topics: [ 'BFS', 'DFS', 'Topological Sort' ] } ]
使用 delete property **:
此关键字用于删除属性及其关联值。删除后,无法恢复已删除的属性。
语法:
delete object.property or
delete object['property'] or
delete object[index]
返回值: 对于所有情况都返回true,当属性是自身不可配置的属性时返回false。
示例2: 我们将使用 delete 关键字来删除对象及其属性。
首先,我们将删除索引为0的对象,然后删除索引为1的对象的属性。
var students = [
{
"学生": "Akshit",
"地址": "莫拉达巴德",
"电话": "98760"
},
{
"学生": "Nikita",
"地址": "勒克瑙",
"电话": "98754"
},
{
"学生": "Somya",
"地址": "德里",
"电话": "67878"
},
{
"学生": "Eshika",
"地址": "班加罗尔",
"电话": "67676"
},
{
"学生": "Parul",
"地址": "金奈",
"电话": "77668"
}
]
console.log("删除前的对象:");
console.log(students);
console.log("使用删除关键字删除索引0处的对象");
delete students[0];
console.log("删除后的对象:");
console.log(students);
console.log("使用删除关键字删除索引1处的对象属性");
delete students[1].phone;
console.log("删除后的对象:");
console.log(students);
输出:
删除前的对象:
[
{ 学生: 'Akshit', 地址: '莫拉达巴德', 电话: '98760' },
{ 学生: 'Nikita', 地址: '勒克瑙', 电话: '98754' },
{ 学生: 'Somya', 地址: '德里', 电话: '67878' },
{ 学生: 'Eshika', 地址: '班加罗尔', 电话: '67676' },
{ 学生: 'Parul', 地址: '金奈', 电话: '77668' }
]
使用删除关键字删除索引0处的对象
删除后的对象:
[
<1个空项目>,
{ 学生: 'Nikita', 地址: '勒克瑙', 电话: '98754' },
{ 学生: 'Somya', 地址: '德里', 电话: '67878' },
{ 学生: 'Eshika', 地址: '班加罗尔', 电话: '67676' },
{ 学生: 'Parul', 地址: '金奈', 电话: '77668' }
]
使用删除关键字删除索引1处的对象属性
删除后的对象:
[
<1个空项目>,
{ 学生: 'Nikita', 地址: '勒克瑙' },
{ 学生: 'Somya', 地址: '德里', 电话: '67878' },
{ 学生: 'Eshika', 地址: '班加罗尔', 电话: '67676' },
{ 学生: 'Parul', 地址: '金奈', 电话: '77668' }
]
使用null: 当我们将任何对象的值设置为null时,节点的垃圾回收器将自动删除属性值。然而,属性的名称将保留。
语法:
对象.属性 = null
示例3: 在这个示例中,我们将使用null来删除对象的属性。
var Data_Structures = [
{
"名称": "树",
"课程": "树的介绍",
"内容": ["二叉树", "二叉搜索树",
"通用树"]
},
{
"名称": "图",
"主题": ["广度优先搜索", "深度优先搜索", "拓扑排序"]
}
]
console.log("删除前的对象:");
console.log(Data_Structures);
console.log("使用null删除索引0处的对象");
Data_Structures[0].内容 = null;
console.log("删除后的对象:");
console.log(Data_Structures);
输出:
删除前的对象:
[
{
名称: '树',
课程: '树的介绍',
内容: [ '二叉树', '二叉搜索树', '通用树' ]
},
{ 名称: '图', 主题: [ '广度优先搜索', '深度优先搜索', '拓扑排序' ] }
]
使用null删除索引0处的对象
删除后的对象:
[
{ 名称: '树', 课程: '树的介绍', 内容: null },
{ 名称: '图', 主题: [ '广度优先搜索', '深度优先搜索', '拓扑排序' ] }
]
阅读更多:JavaScript 教程