В чем может быть причина следующей ошибки: недопустимый символ '-' после значения верхнего уровня? - PullRequest
0 голосов
/ 29 января 2020

Я использую библиотеку 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.

Похоже, ошибка в запросе, а не входных данных. Кто-нибудь может мне помочь в этом?

1 Ответ

1 голос
/ 29 января 2020

Замена обратных строк в строке поиска одинарной кавычкой устраняет ошибку.

Используйте это вместо: "{ labels: ['example'], datasets: [{label: 'Verfügbarkeit', data: [?oeeDate == '2019-03-06T00:00:00'].oee}]}".

Больше ошибок нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...