JSONPath 表达式

JSONPath 表示法描述 JSON 文档中的一个或多个元素的路径。

JSONPath 表示法用于以下场景:

支持以下 JSONPath 表示法子集:

路径表达式 说明
$ 根对象
. 选择父对象中的指定属性。
如果该属性不包含特殊字符,请使用此表示法。
['property']["property"] 选择父对象中的指定属性。 确保在属性名称的两侧添加单引号或双引号。
如果属性名称包含特殊字符(例如空格)或以 A..Za..z_ 之外的字符开头,请使用此表示法。
[n] 选择数组中的第 n 个元素。 索引从 0 开始。

注意

不支持通配符、递归、并集、切片和当前对象。

示例

给定以下 JSON 文档:

{
  "Source": "Server-01",
  "Timestamp": "2023-07-25T09:15:32.123Z",
  "Log Level": "INFO",
  "Message": "Application started successfully.",
  "Details": {
    "Service": "AuthService",
    "Endpoint": "/api/login",
    "Response Code": 200,
    "Response Time": 54.21,
    "User": {
      "User ID": "user123",
      "Username": "kiana_anderson",
      "IP Address": "192.168.1.100"
    }
  }
}

可以使用 JSONPath 表示法表示每个字段,如下所示:

"$.Source"                     // Source field
"$.Timestamp"                  // Timestamp field
"$['Log Level']"               // Log Level field
"$.Message"                    // Message field
"$.Details.Service"            // Service field
"$.Details.Endpoint"           // Endpoint field
"$.Details['Response Code']"   // Response Code field
"$.Details['Response Time']"   // Response Time field
"$.Details.User['User ID']"    // User ID field
"$.Details.User.Username"      // Username field
"$.Details.User['IP Address']" // IP Address field