Приёмник json receiver golang
```go
package main
import (
"encoding/json"
"fmt"
"log"
)
func main() {
// Пример JSON, который мы хотим распарсить
jsonData := `{"name": "John", "age": 30, "city": "New York",
"list":["a","b"], "listB":{"a":"c"}}`
// Чтение JSON в байтовый срез
var data map[string]interface{}
err := json.Unmarshal([]byte(jsonData), &data)
if err != nil {
log.Fatal(err)
}
// Проверка на существование каждого элемента
for key := range data {
fmt.Printf("Key: %s, Value: %v\n", key, data[key])
}
// Если нужно проверить наличие конкретного ключа
keyToCheck := "name"
if val, ok := data[keyToCheck]; ok {
fmt.Printf("Key '%s' found, value: %v\n", keyToCheck, val)
} else {
fmt.Printf("Key '%s' not found\n", keyToCheck)
}
// fmt.Println(data["listB"]["a"])
// Проверка типа значения перед индексированием
listB, ok := data["listB"].(map[string]interface{})
if !ok {
log.Fatalf("Expected 'listB' to be a map, but got %T", data["listB"])
}
value, ok := listB["a"]
if !ok {
log.Fatalf("Key 'a' not found in 'listB'")
}
fmt.Println("Value of 'a' in 'listB':", value)
list, ok := data["list"].([]interface{})
if !ok {
log.Fatalf("111")
}
fmt.Println("Value in 'list[0]':", list[0])
}
```