# Access nested field array with scripted field

**URL:** <https://discuss.elastic.co/t/access-nested-field-array-with-scripted-field/354443>\
**Category:** Kibana\
**Created:** [February 29, 2024, 12:03pm UTC](https://discuss.elastic.co/t/access-nested-field-array-with-scripted-field/354443 "2024-02-29T12:03:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![skouf](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/skouf/32/122903_2.png) [@skouf](https://discuss.elastic.co/u/skouf)\
**Post date:** [February 29, 2024, 12:03pm UTC](https://discuss.elastic.co/t/access-nested-field-array-with-scripted-field/354443/1 "2024-02-29T12:03:54Z")

</div>

Hello

My developer created this field structure :

```auto
"realization": {
      "id": 24188,
      "releasedOn": null,
      "isAnticipated": false,
      "reason": null,
      "realizationPeriods": [
        {
          "id": 373967,
          "label": "Janvier 2024",
          "realizationPeriodVolumes": [
            {
              "id": 758155,
              "workUnit": {
                "id": 269,
                "label": "my Label",
                "volumeMax": "650.00",
                "volumeAverage": "350.00"
              }
            },
            {
              "id": 758156,
              "workUnit": {
                "id": 270,
                "label": "Heures en entreprise",
                "volumeMax": "140.00",
                "volumeAverage": "70.00"
              }
            }
          ]
        }
	]
}

```

I need to access this specific field :  
realization.realizationPeriods.realizationPeriodVolumes.workUnit.label

I tried with scripted field :

```auto
if (doc['realization.realizationPeriods.realizationPeriodVolumes.workUnit.label'].size() == 0) return '';
try {
  return doc['realization.realizationPeriods.realizationPeriodVolumes.workUnit.label.keyword'].value;
} catch(Exception e) {
  return 'N/A';
}

```

But it returns no values. I tried everything, can't figure what is wrong.

Is this because my "workUnit" field is inside an array ?

Can someone give me the solution ? I spent hours

Thanks !

---

<div class="post-metadata">

**Author:** ![ahmed\_charafouddine](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ahmed_charafouddine/32/45129_2.png) [@ahmed\_charafouddine](https://discuss.elastic.co/u/ahmed_charafouddine)\
**Post date:** [February 29, 2024, 1:10pm UTC](https://discuss.elastic.co/t/access-nested-field-array-with-scripted-field/354443/2 "2024-02-29T13:10:15Z")

</div>

> [@skouf](#):
>
> Is this because my "workUnit" field is inside an array ?

In my opinion yes.  
If you want to retrieve the values from an array, you can do it like this:

```auto
 for (int i = 0; i < doc['my_array_field'].length; ++i) {
   // Do something with doc['my_array_field'][i].value
  }

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 28, 2024, 1:10pm UTC](https://discuss.elastic.co/t/access-nested-field-array-with-scripted-field/354443/3 "2024-03-28T13:10:47Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
