Для извлечения информации из файла в формате JSON с помощью Golang можно использовать стандартную библиотеку encoding/json. Вот пример кода, который показывает как распарсить JSON и получить нужные значения:
```go
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
func main() {
data, err := ioutil.ReadFile("data.json")
if err != nil {
fmt.Println("Error reading file:", err)
return
}
var result map[string]interface{}
err = json.Unmarshal(data, &result)
if err != nil {
fmt.Println("Error parsing JSON:", err)
return
}
total := result["query_total"].(float64)
page := result["query"].(float64)
products := result["products"].([]interface{})
fmt.Println("Total:", total)
fmt.Println("Page:", page)
fmt.Println("Products:", products)
}
```
С учетом файла data.json вида:
```json
{
"query": 1,
"query_total": 100,
"products": [
{"id": 1, "name": "Product 1"},
{"id": 2, "name": "Product 2"}
]
}
```
Этот код читает файл data.json, распарсивает его как JSON и затем извлекает значения total, page и products.
Чтобы обработать возможное пустое значение total, вы можете добавить дополнительную проверку, например:
```go
var total float64
totalVal, ok := result["query_total"].(float64)
if ok {
total = totalVal
} else {
total = 0
}
```
Этот код проверяет, есть ли значение query_total в JSON и, если нет, устанавливает total в 0.
Надеюсь, это поможет вам успешно распарсить JSON в Golang и извлечь нужные значения.