以下错误可能是什么问题:顶级值之后的无效字符“-”?

我正在使用 golang 库 go-jmespath 来查询 json 文件。我的代码如下所示:


package main


import (

    "encoding/json"

    "log"


    "github.com/jmespath/go-jmespath"

)


func main() {

    var jsonBlob = []byte(`[

    {

        "oeeId": 3162396,

        "oeeDate": "2019-03-06T00:00:00",

        "oee": 21.2

    }]`)


    var d interface{}


    err := json.Unmarshal(jsonBlob, &d)

    if err != nil {

        log.Printf("1: %s", err)

    }


    res, err := jmespath.Search("{ labels: ['example'], datasets: [{label: 'Verfügbarkeit', data: [?oeeDate == `2019-03-06T00:00:00`].oee}]}", d)

    if err != nil {

        log.Printf("2: %s", err)

    }

    log.Println(res)

}

这也是Playground中示例的链接。


当我执行此代码时,我收到以下错误:


invalid character '-' after top-level value

我想知道这段代码有什么问题,因为这个示例适用于其他 Jmespath 实现,如 javascript jmespath.js 库。


错误似乎在查询而不是输入数据中。有人可以帮我解决这个问题吗?


梵蒂冈之花
浏览 156回答 1
1回答

慕后森

用单引号替换搜索字符串中的反引号可以消除错误。改用这个:"{ labels: ['example'], datasets: [{label: 'Verfügbarkeit', data: [?oeeDate == '2019-03-06T00:00:00'].oee}]}".没有更多的错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go