Extracting "values", and "tuples" nested inside a JSON

Extracting "values", and "tuples" nested inside a JSON

Hello, 

I have some inquires I would like to make in reference to the code below,

We are using Blancco API, to populate reports from Blancco into our form, we are using the getJson() function to populate the data;

I have been able to extract the data up on till "target" array, but the issue occurring, is that my method of extraction is not sustainable, because I am using "for loop", "if" statements, and "contains()", so when "keys" appears multiple times but with different "values" nested as tuples, it only returns the last tuple, and ignores the rest.

I am trying to extract all the "values" nested inside the "tuples" nested inside "target" array.

Example; The "values" nested inside "target_id", "internal_id", "controller_internal_id" etc.

How do I solve this problem?

This code below shows, what I have done in trying to solve that problem for "target", but it's returning only the "keys", and not the "values";

blancco_erasure_report = response.getJSON("reports")
.getJSON("blancco_data").getJSON("blancco_erasure_report");
// ###################################################################
erasures = response.getJSON("reports").getJSON("blancco_data")
.getJSON("blancco_erasure_report").getJson("erasures");
// ###################################################################
erasure = response.getJSON("reports").getJSON("blancco_data").getJSON("blancco_erasure_report")
.getJson("erasures").getJson("erasure");
// ###################################################################
    m = Map();
    l = List();
    for each  erasure_info in erasure
    {
        if(erasure_info.contains("erasure_id"))
        {
            erasure_type1 = erasure_info.getJson("@type");
            erasure_erasure_id = erasure_info.getJson("erasure_id");
        }
        if(erasure_info.contains("timestamp"))
        {
            erasure_type2 = erasure_info.getJson("@type");
            erasure_timestamp = erasure_info.getJson("timestamp");
        }
        // EXTRACTION OF "TARGET" CODE BELOW
        for each  rec1 in erasure_info.getJson("target")
        {
            if(rec1.keys().tostring().remove("@type,") != {"region","supported_formats","features"})
            {
                l.add(rec1.keys().tostring().remove("@type,"));
            }
            if(rec1.keys().tostring().remove("@type,") == "region")
            {
                m1 = Map();
                l1 = list();
                //l99 = list();
                for each  rec3 in rec1.getjson("region")
                {
                    l1.add(rec3.keys().tostring().remove("@type,"));
                    info "l: " + l;
                }
                m1.put("regions",l1);
                l.add(m1);
            }
            if(rec1.keys().tostring().remove("@type,") == "features")
            {
                m2 = Map();
                l2 = list();
                for each  rec4 in rec1.getjson("features")
                {
                    l2.add(rec4.keys().tostring().remove("@type,"));
                }
                m2.put("features",l2);
                l.add(m2);
            }
            if(rec1.keys().tostring().remove("@type,") == "supported_formats")
            {
                m3 = Map();
                l3 = list();
                for each  rec4 in rec1.getjson("supported_formats")
                {
                    m4 = Map();
                    l4 = list();
                    for each  rec5 in rec4.getjson("format")
                    {
                        l4.add(rec5.keys().tostring().remove("@type,"));
                    }
                    m4.put("format",l4);
                    l3.add(m4);
                }
                m3.put("supported_formats",l3);
                l.add(m3);
            }
        }
    }
    // PLEASE NOTE;
    //info "l: " + l; // Note: "l" is the whole "target"
    info "----------------------------";
    //info "l1: " + l1; // Note: "l1" is the data nested inside the "region" <key>
    info "----------------------------";
    //info "m1: " + m1; // Note: "m1" is the whole "region"
    info "----------------------------";
    //info "m2: " + m2; // Note: "m2" is the whole "features"
    info "----------------------------";
    //info "l2: " + l2; // Note: "l2" is the data nested inside the "features" <key>
    info "----------------------------";
    //info "m3: " + m3; // Note: "m3" is the whole "supported_formats"
    info "----------------------------";
    //info "m4: " + m4; // Note: "m4" is the whole "format" nested inside "supported_formats"
    info "----------------------------";
    //info "l4: " + l4; // Note: "l4" is the data nested inside the "format" <key>
    info "----------------------------";
    // ###################################################################
m.put("target",l);

This is the Full code below; 

{
 "reports": [
    {
      "blancco_data": {
        "description": {
          "document_id": "Redacted",
          "document_log": [
            {
              "author": {
                "product_name": {
                  "@id": "30",
                  "@name": "Redacted",
                  "value": "Redacted"
                },
                "product_version": "Redacted",
                "product_revision": "Redacted"
              },
              "date": "2024-04-24T10:26:08+0000",
              "clock_source": "Redacted"
            }
          ],
          "description_entries": {
            "company_information": [
              {
                "@type": "string",
                "customer_license": "Redacted"
              },
              {
                "@type": "string",
                "erasure_provider": "Redacted"
              }
            ],
            "license_consumption_ids": [
              {
                "@type": "string",
                "license_consumption_id": "Redacted"
              }
            ]
          }
        },
        "blancco_erasure_report": {
          "erasures": [
            {
              "erasure": [
                {
                  "@type": "uint",
                  "erasure_id": 1
                },
                {
                  "@type": "string",
                  "timestamp": "Redacted"
                },
                {
                  "target": [
                    {
                      "@type": "uint",
                      "target_id": 2
                    },
                    {
                      "@type": "uint",
                      "internal_id": 42
                    },
                    {
                      "@type": "uint",
                      "controller_internal_id": 29
                    },
                    {
                      "@type": "string",
                      "type": "disk"
                    },
                    {
                      "@type": "string",
                      "model": "Redacted"
                    },
                    {
                      "@type": "string",
                      "vendor": "Redacted"
                    },
                    {
                      "@type": "string",
                      "serial": "Redacted"
                    },
                    {
                      "@type": "string",
                      "oui": "Redacted"
                    },
                    {
                      "@type": "string",
                      "firmware_revision": "11200108"
                    },
                    {
                      "@type": "uint",
                      "blocksize": 512
                    },
                    {
                      "@type": "string",
                      "interface_type": "Redacted"
                    },
                    {
                      "@type": "uint",
                      "capacity": 123456789012
                    },
                    {
                      "@type": "uint",
                      "sectors": 123456789012
                    },
                    {
                      "region": [
                        {
                          "@type": "string",
                          "type": "Redacted"
                        },
                        {
                          "@type": "uint",
                          "capacity": 123456789012
                        },
                        {
                          "@type": "uint",
                          "sectors": 123456789012
                        },
                        {
                          "@type": "string",
                          "status": "Redacted"
                        }
                      ]
                    },
                    {
                      "@type": "string",
                      "health": "good"
                    },
                    {
                      "@type": "uint",
                      "namespace_id": 1
                    },
                    {
                      "@type": "uint",
                      "namespaces_size": 1
                    },
                    {
                      "@type": "string",
                      "namespace_eui": "Redacted"
                    },
                    {
                      "@type": "string",
                      "namespace_nguid": "Redacted"
                    },
                    {
                      "@type": "string",
                      "metadata_protocol": "Redacted"
                    },
                    {
                      "@type": "string",
                      "metadata_support": "Redacted"
                    },
                    {
                      "@type": "uint",
                      "metadata_blocksize": 0
                    },
                    {
                      "supported_formats": [
                        {
                          "format": [
                            {
                              "@type": "uint",
                              "index": 0
                            },
                            {
                              "@type": "uint",
                              "sector_size": 517
                            },
                            {
                              "@type": "uint",
                              "metadata_size": 0
                            }
                          ]
                        },
                        {
                          "format": [
                            {
                              "@type": "uint",
                              "index": 1
                            },
                            {
                              "@type": "uint",
                              "sector_size": 4094
                            },
                            {
                              "@type": "uint",
                              "metadata_size": 0
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "@type": "uint",
                      "selected_format": 0
                    },
                    {
                      "features": [
                        {
                          "@type": "string",
                          "feature": "Redacted"
                        },
                        {
                          "@type": "string",
                          "feature": "Redacted"
                        },
                        {
                          "@type": "string",
                          "feature": "Redacted"
                        },
                        {
                          "@type": "string",
                          "feature": "Redacted"
                        },
                        {
                          "@type": "string",
                          "feature": "Redacted"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    }
  ]
}





    Access your files securely from anywhere

        Zoho Developer Community




                                  Zoho Desk Resources

                                  • Desk Community Learning Series


                                  • Digest


                                  • Functions


                                  • Meetups


                                  • Kbase


                                  • Resources


                                  • Glossary


                                  • Desk Marketplace


                                  • MVP Corner


                                  • Word of the Day



                                      Zoho Marketing Automation
                                              • Sticky Posts

                                              • Share your success story

                                                We would like to hear from our passionate users how much Zoho Creator has changed the way you work and benefited you. If you would like to share your story to us and be featured as a proud user of Zoho Creator, then this is for you. Fill up the form below and if you want to be included in a case study, we will get in touch with you to get further details. So what are you waiting for? Tell us your story. Charles
                                              • Merge and Store v1 API depreciation

                                                Hi Zoho Writer users, The Merge and Store v1 API allows you to store the merged document in Zoho WorkDrive. The response of this API will be returned with the document's ID only after the merge is complete. In Deluge, the maximum timeout for operation
                                              • Zoho Creator Developer's Conference 2017 !!!

                                                We welcome all our Creator Developers! You're invited to join us for our annual Zoholics Developers conference August 29th–31st! This is your chance to get training and guidance on Zoho Creator from our most knowledgeable custom app builders.       Zoholics Developers is a three-day event where you'll participate in interactive workshops to hone your app-building skills, get questions answered by Creator experts with personal one-on-one sessions, and connect with other Creator developers from around


                                              Manage your brands on social media



                                                    Zoho TeamInbox Resources

                                                      Zoho DataPrep Resources



                                                        Zoho CRM Plus Resources

                                                          Zoho Books Resources


                                                            Zoho Subscriptions Resources

                                                              Zoho Projects Resources


                                                                Zoho Sprints Resources


                                                                  Qntrl Resources


                                                                    Zoho Creator Resources



                                                                        Zoho Campaigns Resources


                                                                          Zoho CRM Resources

                                                                          • CRM Community Learning Series

                                                                            CRM Community Learning Series


                                                                          • Kaizen

                                                                            Kaizen

                                                                          • Functions

                                                                            Functions

                                                                          • Meetups

                                                                            Meetups

                                                                          • Kbase

                                                                            Kbase

                                                                          • Resources

                                                                            Resources

                                                                          • Digest

                                                                            Digest

                                                                          • CRM Marketplace

                                                                            CRM Marketplace

                                                                          • MVP Corner

                                                                            MVP Corner





                                                                              Design. Discuss. Deliver.

                                                                              Create visually engaging stories with Zoho Show.

                                                                              Get Started Now