📜  从 json 中只获取一种类型 - Javascript (1)

📅  最后修改于: 2023-12-03 15:06:31.673000             🧑  作者: Mango

从 JSON 中只获取一种类型 - JavaScript

在处理 JSON 数据时,我们可能只需要获取其中一种类型的数据,例如只需要获取数字类型或字符串类型。本文将介绍如何使用 JavaScript 从 JSON 中获取指定类型的数据。

1. JSON 数据

首先,让我们看一下一个 JSON 数据的示例:

[
  {"name": "John", "age": 30},
  {"name": "Mary", "age": 25},
  {"name": "Tom", "age": 40},
  {"name": "Jerry", "age": 35}
]

这是一个包含四个对象的数组,每个对象都有 nameage 属性。

2. 只获取数字类型的数据

如果我们只需要获取所有的 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() 方法过滤出所有类型为数字的元素。

3. 只获取字符串类型的数据

类似地,如果我们只需要获取所有的 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 属性,过滤条件改为了类型为字符串。

4. 总结

使用 JavaScript 从 JSON 数据中获取指定类型的数据并不复杂,只需要结合 Array.map()Array.filter() 方法以及 typeof 运算符就可以实现。需要注意的是,使用这种方法可能会不太适合大数据量的 JSON 数据,因为需要先将所有数据提取出来再进行类型过滤。