📅  最后修改于: 2023-12-03 15:06:31.673000             🧑  作者: Mango
在处理 JSON 数据时,我们可能只需要获取其中一种类型的数据,例如只需要获取数字类型或字符串类型。本文将介绍如何使用 JavaScript 从 JSON 中获取指定类型的数据。
首先,让我们看一下一个 JSON 数据的示例:
[
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Tom", "age": 40},
{"name": "Jerry", "age": 35}
]
这是一个包含四个对象的数组,每个对象都有 name
和 age
属性。
如果我们只需要获取所有的 age
属性,它们都是数字类型,可以使用 JavaScript 的 Array.map()
方法和 typeof
运算符来实现:
const jsonData = [
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Tom", "age": 40},
{"name": "Jerry", "age": 35}
];
const ageArray = jsonData.map(obj => obj.age).filter(value => typeof value === "number");
console.log(ageArray); // [30, 25, 40, 35]
首先,我们使用 Array.map()
方法将所有的 age
属性提取成一个数组,然后使用 Array.filter()
方法过滤出所有类型为数字的元素。
类似地,如果我们只需要获取所有的 name
属性,它们都是字符串类型,可以这样做:
const jsonData = [
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Tom", "age": 40},
{"name": "Jerry", "age": 35}
];
const nameArray = jsonData.map(obj => obj.name).filter(value => typeof value === "string");
console.log(nameArray); // ["John", "Mary", "Tom", "Jerry"]
这个示例和之前类似,只是将 age
属性改为了 name
属性,过滤条件改为了类型为字符串。
使用 JavaScript 从 JSON 数据中获取指定类型的数据并不复杂,只需要结合 Array.map()
和 Array.filter()
方法以及 typeof
运算符就可以实现。需要注意的是,使用这种方法可能会不太适合大数据量的 JSON 数据,因为需要先将所有数据提取出来再进行类型过滤。