机器数据分析平台

  • 机器数据分析平台 > 产品手册 > SPL参考手册 > jsonpath

    jsonpath

    最近更新时间:2019-10-17 14:51:50

    通过jsonpath可以从json数据中通过路径参数提取相关信息。也可以在eval算子中使用jsonpath()函数。

    语法:

    jsonpath [input=< field>] [output=< field>] path=< datapath> | < datapath>

    参数说明:
    1.input 是读取数据的字段,默认input为_raw字段。

    2.output 是输出的字段,如果未指定output,则path参数的值将设为提取值的字段名称。

    3.path 是要提取数据的位置路径。路径可以指定为path=<datapath>或可以省略path关键字。路径形如'user.phoneNumbers{1}.number',由字段名称、大括号标注的索引和句点拼接而成。

    4.由大括号引起的索引可以是:

    * 整数,用于引用数组中数据的位置. JSON使用从零开始的索引,而XML使用从一开始的索引。如,purchases.book{1} 在json中指purchases的第二个book元素,而在xml中指purchases的第一个book元素。  
    
    * 由@开头的字符串,以引用XML属性,如'title{@yearPublished}'。json数据不支持字符串索引。
    
    * 空,如{},表示通配符。比如 phoneNumbers.number{} 表示phoneNumbers下所有的number元素. 在jsonpath中,表示jsonArray必须加上{},表示jsonObject则不能加上{}. 比如,如果purchases下面有多个book,那么表示purchases下的所有books 必须用purchases.book{} 而不是purchases.book。 而在xmlpath中,由于xml没有array的概念,purchases.book 和purchases.book{} 结果一样。
    

    示例:

    假设有以下json数据:

    {
      "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
      },
      "phoneNumbers": [ {
        "type": "home",
        "number": "212 555-1234"
      },
      {
        "type": "office",
        "number": "646 555-4567"
      },
      {
        "type": "mobile",
        "number": "123 456-7890"
      } ]
    }
    
    • 查询 没有孩子的jsonObject:

    query:

    jsonpath output=myfield path=address.city   
    

    output: myfield字段的值为"New York".

    • 查询 有孩子的jsonObject:

    query:

     jsonpath output=myfield path=address 
    

    output:

    myfield字段的值为"{"streetAddress":"21 2nd Street","city":"New York","state":"NY","postalCode":"10021-3100"}".

    • 查询 json数组

    query:

    jsonpath output=myfield path=phoneNumbers{1}.type  
    

    output: myfield字段的值为"office".

    query:

    jsonpath output=myfield path=phoneNumbers{}.type  
    

    output: myfield字段的值为一个数组:["home","office","mobile"]

    以上内容是否对您有帮助?
  • Icon helper
    Icon free helper
    Close