0

I am using jsonnet to process a response that is structured like so:

{
    "resources": [
        {
           "response_body": {
                "id": "test_id",
                "key": "test_key",
                "self": "https://someurl.com/test/1234"
            }
      ........

I am attempting to process hte response with the following jsonnet:

local result = std.parseJson(std.extVar('result'));
local resource = result.resources[0];
{
  result_fields: {
    issue_url: resource.response_body.self,
    issue: resource.response_body.id
  }
}

But it's throwing the error:

JsonnetTokenType.IDENTIFIER expected, got 'self'

How would I go about access the self value from my response?

Abe Miessler
  • 82,532
  • 99
  • 305
  • 486

1 Answers1

0

self is a reserved word (it's a reference to the current object in scope), if you'd still needed to use 'self' (as it's e.g. enforced by the JSON structure in result), you could then do:

local result = std.parseJson(std.extVar('result'));
local resource = result.resources[0];
{
  result_fields: {
    issue_url: resource.response_body['self'],
    issue: resource.response_body.id
  }
}

Nevertheless, if possible to use a different key/field name there I'd strongly suggest finding another name.

jjo
  • 2,595
  • 1
  • 8
  • 16