跳转至

JsonExtract

概述

JsonExtract 函数用于从 JSON 字符串中提取指定的字段值。

语法说明

JsonExtract(<JSON字符串>, <路径>)

参数说明

参数 必需 参数类型 说明
JSON字符串 字段、表达式、常量 包含 JSON 数据的字符串
路径 字符串 指定要提取的字段的路径

示例

数据示例

假设我们有一个包含订单信息的 JSON 字符串的表格:

OrderID OrderInfo
O001 {"orderID": "O001", "customer": {"name": "Alice", "age": 30}, "products": [{"name": "Laptop", "details": {"model": "X1", "price": 1200}}, {"name": "Mouse", "details": {"model": "MX Master", "price": 100}}]}
O002 {"orderID": "O002", "customer": {"name": "Bob", "age": 25}, "products": [{"name": "Smartphone", "details": {"model": "S20", "price": 800}}, {"name": "Charger", "details": {"model": "FastCharge", "price": 50}}]}
O003 {"orderID": "O003", "customer": {"name": "Charlie", "age": 35}, "products": [{"name": "Tablet", "details": {"model": "Tab A", "price": 300}}, {"name": "Case", "details": {"model": "ToughCase", "price": 20}}]}

提取单个值

  • 从 JSON 字符串中提取订单 ID:
JsonExtract(OrderInfo, '$.orderID')

提取嵌套值

  • 从 JSON 字符串中提取客户名称:
JsonExtract(OrderInfo, "$.customer.name")
  • 从 JSON 字符串中提取客户年龄:
JsonExtract(OrderInfo, "$.customer.age")

提取数组中的值

  • 提取第一个产品的名称:
JsonExtract(OrderInfo, "$.products[0].name")
  • 提取第一个产品的价格:
JsonExtract(OrderInfo, "$.products[0].details.price")

计算结果

通过上述 JsonExtract 函数表达式,结果将会是:

OrderID OrderInfo OrderID_Extracted CustomerName CustomerAge FirstProductName FirstProductPrice
O001 {"orderID": "O001", "customer": {"name": "Alice", "age": 30}, "products": [{"name": "Laptop", "details": {"model": "X1", "price": 1200}}, {"name": "Mouse", "details": {"model": "MX Master", "price": 100}}]} O001 Alice 30 Laptop 1200
O002 {"orderID": "O002", "customer": {"name": "Bob", "age": 25}, "products": [{"name": "Smartphone", "details": {"model": "S20", "price": 800}}, {"name": "Charger", "details": {"model": "FastCharge", "price": 50}}]} O002 Bob 25 Smartphone 800
O003 {"orderID": "O003", "customer": {"name": "Charlie", "age": 35}, "products": [{"name": "Tablet", "details": {"model": "Tab A", "price": 300}}, {"name": "Case", "details": {"model": "ToughCase", "price": 20}}]} O003 Charlie 35 Tablet 300