Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // https://harendra21.medium.com/dynamic-json-parsing-in-golang-a1411c9e6cf7
- package main
- import (
- _ "embed"
- "encoding/json"
- "fmt"
- )
- //go:embed test.json
- var jsonData []byte
- func main() {
- // Parse JSON into an empty interface
- var result interface{}
- err := json.Unmarshal(jsonData, &result)
- if err != nil {
- fmt.Println("Error:", err)
- return
- }
- // Accessing dynamic JSON fields
- dataMap, ok := result.(map[string]interface{})
- if !ok {
- fmt.Println("Invalid JSON structure")
- return
- }
- // Accessing specific fields
- name, nameExists := dataMap["name"].(string)
- age, ageExists := dataMap["age"].(float64)
- city, cityExists := dataMap["city"].(string)
- hasCar, hasCarExists := dataMap["hasCar"].(bool)
- languages, languagesExists := dataMap["languages"].([]interface{})
- // Displaying parsed data
- if nameExists {
- fmt.Println("Name:", name)
- }
- if ageExists {
- fmt.Println("Age:", int(age))
- }
- if cityExists {
- fmt.Println("City:", city)
- }
- if hasCarExists {
- fmt.Println("Has Car:", hasCar)
- }
- if languagesExists {
- fmt.Println("Languages:")
- for _, lang := range languages {
- fmt.Println(" -", lang)
- }
- }
- }
- /* test.json file
- {
- "name": "John Doe",
- "age": 30,
- "city": "New York",
- "hasCar": true,
- "languages": ["Go", "JavaScript"]
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement