登录
首页 >  Golang >  Go问答

错误分析:顶级值后出现了无效字符“-”的可能问题

来源:stackoverflow

时间:2024-03-05 22:12:26 150浏览 收藏

本篇文章向大家介绍《错误分析:顶级值后出现了无效字符“-”的可能问题》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我正在使用 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)
}

这里还有演示中示例的链接。

当我执行此代码时,出现以下错误:

invalid character '-' after top-level value

我想知道这段代码有什么问题,因为这个示例可以与其他 jmespath 实现(例如 javascript jmespath.js 库)一起使用。

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


解决方案


用单引号替换搜索字符串中的反引号可以消除错误。

改用这个:"{ labels: ['example'], datasets: [{label: 'Verfügbarkeit', data: [?oeeDate == '2019-03-06T00:00:00'].oee} ]}“

不再有错误。

本篇关于《错误分析:顶级值后出现了无效字符“-”的可能问题》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>