Я работаю над добавлением «шаблонов массива» в проект Go на Github, который называется jsonget. Вот пример того, что я имею в виду массива маска:Ввод в рекурсивный вызов функции golang
> echo "[{product:'coffee', price:2.10}, {product:'beer', price:3.80}]" | jsonget '*.price'
[2.10, 3.80]
Код для моей отрасли является here
Проблемы Я бег в с типизацией, когда GetValue
встречает *
характера, она рекурсивно, вызывая GetValue
в подвыражении, но тип всегда возвращается как строка.
Например, в тестовом файле, я даю ему этот кусок: JSON
{
"inventory": [
{"name": "mountain bike", "price": 251.0},
{"name": "red wagon", "price": 90.10},
{"name": "kinesis advantage", "price": 300.0},
{"name": "a ticket to Mars", "price": 1200000000.0}
]
}
Тогда запроса из inventory[*].price
, ожидая [251,90.1,300,1.2e+09]
, но вместо того, чтобы получать ["251","90.1","300","1.2e+09"]
.
Я хотел бы избежать использования отражения здесь, но я не вижу другого способа сделать это.
Публикация фрагмента кода, выделяющего проблему, была бы полезна. –
Ваша библиотека определена внутри пакета 'main' - вы должны исправить структуру своего проекта. – thwd