-
-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Selecting only inner fields #116
Comments
Hey @BlueCanary-DM, thanks for raising this issue. Please try the following code and let me know if it needs any adjustments: package main
import (
"encoding/json"
"fmt"
"log"
"github.com/Jeffail/gabs/v2"
)
const (
jsonData = `{
"etag": "\"098f6bcd4621d373cade4e832627b4f6\"",
"items": [
{
"actor": {
"email": "[email protected]",
"profileId": "1111111"
},
"etag": "\"c4ca4238a0b923820dcc509a6f75849b\"",
"events": [
{
"name": "edit",
"parameters": [
{
"boolValue": true,
"name": "primary_event"
},
{
"name": "doc_id",
"value": "randomID1"
},
{
"name": "doc_type",
"value": "spreadsheet"
},
{
"name": "doc_title",
"value": "Document1"
},
{
"name": "owner",
"value": "[email protected]"
}
],
"type": "access"
}
],
"id": {
"applicationName": "drive",
"customerId": "aaaaabbbb",
"time": "2022-01-26T19:11:33.213Z",
"uniqueQualifier": "1111111"
},
"ipAddress": "127.0.0.1",
"kind": "admin#reports#activity"
},
{
"actor": {
"email": "[email protected]",
"profileId": "222222"
},
"etag": "\"c81e728d9d4c2f636f067f89cc14862c\"",
"events": [
{
"name": "edit",
"parameters": [
{
"boolValue": true,
"name": "primary_event"
},
{
"name": "doc_id",
"value": "randomID2"
},
{
"name": "doc_type",
"value": "spreadsheet"
},
{
"name": "doc_title",
"value": "Document2"
},
{
"name": "owner",
"value": "[email protected]"
}
],
"type": "access"
}
],
"id": {
"applicationName": "drive",
"customerId": "aaaaabbbb",
"time": "2022-01-26T19:11:33.213Z",
"uniqueQualifier": "1111111"
},
"ipAddress": "127.0.0.1",
"kind": "admin#reports#activity"
}
],
"kind": "admin#reports#activities"
}`
)
func main() {
jsonObj, err := gabs.ParseJSON([]byte(jsonData))
if err != nil {
log.Fatalf("Failed to parse input JSON: %s", err)
}
outputObj := map[string]interface{}{}
for idx, item := range jsonObj.Path("items").Children() {
outputObj[fmt.Sprintf("Event %d", idx+1)] = item
}
out, err := json.MarshalIndent(outputObj, "", " ")
if err != nil {
log.Fatalf("Failed to marshal output: %s", err)
}
fmt.Println(string(out))
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi,
Given the JSON below, you'll notice there are 2 outer object 'etag' and 'Items' and a number of inner objects.
My goal is to get rid of the outer object so each inner gets broken down on its own. Is this possible using the gabs utility?
Given JSON:
Desired outcome:
The text was updated successfully, but these errors were encountered: