Merging two JSON strings in golang
15,977
Input JSON :
{
"environment": "production",
"runbook": "http://url",
"message": "there is a problem"
}
It's better to unmarshal the input JSON and combine the two structures before marshaling Output
struct.
Sample Code
inputJSON := `{"environment": "production", "runbook":"http://url","message":"there is a problem"}`
out := map[string]interface{}{}
json.Unmarshal([]byte(inputJSON), &out)
out["name"] = sensu_values.Name
out["command"] = sensu_values.Command
out["status"] = sensu_values.Status
outputJSON, _ := json.Marshal(out)
Author by
jaxxstorm
Updated on July 06, 2022Comments
-
jaxxstorm almost 2 years
I have a struct which I convert to JSON in the old fashioned way:
type Output struct { Name string `json:"name"` Command string `json:"command"` Status int `json:"status"` Output string `json:"output"` Ttl int `json:"ttl,omitempty"` Source string `json:"source,omitempty"` Handlers []string `json:"handlers,omitempty"` } sensu_values := &Output{ Name: name, Command: command, Status: status, Output: output, Ttl: ttl, Source: source, Handlers: [handlers], }
I want to read an arbitrary JSON file from the filesystem, which can be defined as anything by the user, and then add it to the existing JSON string, taking the duplicates from the original.
How can I do this?