返回

st.js:轻松从 Object 中提取数据或转化成另一个 Object

前端

安装

npm install st-js

使用

st.js 使用了一种类似于 JSONPath 的语法来指定要提取或转换的数据。JSONPath 是一种用于在 JSON 对象中查询和提取数据的语言。在 st.js 中,您可以使用 JSONPath 表达式来指定要提取或转换的数据。

以下是一个简单的示例:

const data = {
  name: 'John Doe',
  age: 30,
  address: {
    street: '123 Main Street',
    city: 'Anytown',
    state: 'CA',
    zip: '12345'
  }
};

const result = st.select(data, '$.name');

console.log(result); // 'John Doe'

在上面的示例中,我们使用 st.select() 函数来从 data 对象中提取 name 属性。$.name JSONPath 表达式指定我们要提取的对象的根属性。

st.js 还支持各种各样的转换函数,这些函数可以用来将数据从一种格式转换为另一种格式。以下是一些常见的转换函数:

  • $.toString():将数据转换为字符串。
  • $.toNumber():将数据转换为数字。
  • $.toBoolean():将数据转换为布尔值。
  • $.toArray():将数据转换为数组。
  • $.toObject():将数据转换为对象。

以下是一个使用转换函数的示例:

const data = {
  name: 'John Doe',
  age: '30',
  address: '123 Main Street, Anytown, CA 12345'
};

const result = st.select(data, '$.age').toNumber();

console.log(result); // 30

在上面的示例中,我们使用 $.toNumber() 转换函数将 age 属性从字符串转换为数字。

常见示例

以下是一些常见的 st.js 使用示例:

  • 从对象中提取数据:
const data = {
  name: 'John Doe',
  age: 30,
  address: {
    street: '123 Main Street',
    city: 'Anytown',
    state: 'CA',
    zip: '12345'
  }
};

const name = st.select(data, '$.name');
const age = st.select(data, '$.age');
const address = st.select(data, '$.address');
  • 将对象转换为另一个对象:
const data = {
  name: 'John Doe',
  age: 30,
  address: '123 Main Street, Anytown, CA 12345'
};

const newData = st.transform(data, {
  name: '$.name',
  age: '$.age.toNumber()',
  address: '$.address.toString()'
});
  • 从数组中提取数据:
const data = [
  {
    name: 'John Doe',
    age: 30
  },
  {
    name: 'Jane Smith',
    age: 25
  }
];

const names = st.select(data, '$.name');

总结

st.js 是一个非常有用且易于使用的库,它可以帮助您轻松地从对象中提取数据或将其转换为另一个对象。该库非常适合需要处理大量数据或需要将数据从一种格式转换为另一种格式的开发人员。