Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Log entire object (unwrap nested JSON)

Steve56
ServiceNow Employee
ServiceNow Employee

I am designing a catalog item and would like to know what the entire object of "current" looks like. Right now, I am using 

gs.info(JSON.stringify(current));

However, the result would look something like this 

{
   ...
    "variables": {
        "a": {},
        "b": {},
        "c": {},
   },
   ...
}

I am very sure those objects are not empty as I can dot walk through them. However, is there a way to unwrap all the objects and let gs.info display everything? Thanks!

6 REPLIES 6

It will just print (

My bad. I misunderstood the question.

JSON.stringify() will convert json to a string but this isn't want is desired.

To dump content of the "current" as is used in business rule variable, there's a need to iterate through.

In business rule, current and previous is probably a GlideRecord.

Haven't tested but something like calling function like below.

function dump(obj) {
    var fields = obj.getFields();

    // Enumerate GlideElements in the GlideRecord object that have values
    gs.print('Enumerating over all fields with values:');
    for (var i = 0; i < fields.size(); i++) {
        var glideElement = fields.get(i);
        if (glideElement.hasValue()) {
            gs.print('  ' + glideElement.getName() + '\t' + glideElement);
        }
    }
}

https://developer.servicenow.com/dev.do#!/reference/api/sandiego/server_legacy/c_GlideRecordAPI#r_Gl...