Home > Backend Development > Golang > How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

Susan Sarandon
Release: 2025-01-04 04:54:40
Original
157 people have browsed it

How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

Dynamic JSON Key Parsing in Golang

In the realm of JSON parsing, sometimes one encounters the challenge of dynamic keys at the top level of a JSON string. Suppose we have the following JSON:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`
Copy after login

The task is to extract the values for "name" and "age" from this JSON, but the key "bvu62fu6dq" is dynamic and varies from case to case.

One approach is to define a struct that accommodates this dynamic key structure:

type Info struct {
   UniqueID map[string]string
 }
Copy after login

However, this structure faces challenges in handling the actual extraction of "name" and "age."

To effectively parse such dynamic JSON structures, we can leverage the power of the "encoding/json" package in Golang. Here's a solution:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person
Copy after login

This setup employs a more flexible approach by using a map keyed by the dynamic top-level key (e.g., "bvu62fu6dq"). The "Person" struct encapsulates the data we seek to extract from each dynamic sub-object (e.g., "name" and "age").

With this setup, decoding the JSON and extracting the specific values becomes straightforward:

var info Info

err := json.Unmarshal([]byte(j), &info)
if err != nil {
    // Handle error
}

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Copy after login

This comprehensive solution not only handles dynamic top-level JSON keys but also supports the extraction of specific fields (e.g., "name" and "age") from each sub-object.

The above is the detailed content of How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template