Skip to main content

Extracting keys from a very large JSON response

 can do this using notepad++ and regex

example - retrieve only keys containing 'value':

 

 "appRoles": [
    {
      "allowedMemberTypes": [
        "Application"
      ],
      "description": "Allows the app to read access reviews, reviewers, decisions and settings in the organization, without a signed-in user.",
      "displayName": "Read all access reviews",
      "id": "d07a8cc0-3d51-4b77-b3b0-32704d1f69fa",
      "isEnabled": true,
      "origin": "Application",
      "value": "AccessReview.Read.All"
    },
    {
      "allowedMemberTypes": [
        "Application"
      ],
      "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization, without a signed-in user.",
      "displayName": "Manage all access reviews",
      "id": "ef5f7d5c-338f-44b0-86c3-351f46c8bb5f",
      "isEnabled": true,
      "origin": "Application",
      "value": "AccessReview.ReadWrite.All"
    },
    {
      "allowedMemberTypes": [
        "Application"
      ],
      "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization for group and app memberships, without a signed-in user.",
      "displayName": "Manage access reviews for group and app memberships",
      "id": "18228521-a591-40f1-b215-5fad4488c117",
      "isEnabled": true,
      "origin": "Application",
      "value": "AccessReview.ReadWrite.Membership"
    },
    {
      "allowedMemberTypes": [
        "Application"
      ],
      "description": "Allows an app to read all acronyms without a signed-in user.",
      "displayName": "Read all acronyms",
      "id": "8c0aed2c-0c61-433d-b63c-6370ddc73248",
      "isEnabled": true,
      "origin": "Application",
      "value": "Acronym.Read.All"
    },

  

in notepad do search>select regex>

enter this regex:

"value"[ :]+((?=\[)\[[^]]*\]|(?=\{)\{[^\}]*\}|\"[^"]*\") 

and replace with empty

 

(example of an OR search:

("value"[ :]+((?=\[)\[[^]]*\]|(?=\{)\{[^\}]*\}|\"[^"]*\"))|("id"[ :]+((?=\[)\[[^]]*\]|(?=\{)\{[^\}]*\}|\"[^"]*\")) 

 

Comments

Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){...