# Transfer json file to multiple document

**URL:** <https://discuss.elastic.co/t/transfer-json-file-to-multiple-document/220352>\
**Category:** Logstash\
**Created:** [February 21, 2020, 12:24pm UTC](https://discuss.elastic.co/t/transfer-json-file-to-multiple-document/220352 "2020-02-21T12:24:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![namali](https://avatars.discourse-cdn.com/v4/letter/n/a87d85/32.png) [@namali](https://discuss.elastic.co/u/namali)\
**Post date:** [February 21, 2020, 12:24pm UTC](https://discuss.elastic.co/t/transfer-json-file-to-multiple-document/220352/1 "2020-02-21T12:24:56Z")

</div>

Json file has array lists. list has more than one arrays and want to generate document id from object in array.

sample json  
{data[   
{mainCatName "cat1"  
id 1  
subCat[{  
subcatId 32015,  
subcatName "subcat11"},  
{  
subcatId 32016  
subcatName "subcat12"}]},  
{mainCatName "cat2",  
id 2,  
subCat[{  
subcatId 32014,  
subcatName "subcat21"},  
{  
subcatId 32012  
subcatName "subcat22"}]}  
]}

want to transfer as follows to ELK from logstash

id:1  
mainCatName:cat1  
subcatId:32015  
subcatName :subcat11

id:1  
mainCatName:cat1  
subcatId:32016  
subcatName :subcat12

id:2  
mainCatName:cat2  
subcatId:32014  
subcatName :subcat21

id:2  
mainCatName:cat2  
subcatId:32012  
subcatName :subcat22

following logstash gives only last object of list. want to know how totake other object as well

input {  
file {  
path =\> "/xxx.json"  
start\_position =\>"beginning"  
sincedb\_path =\> "/dev/null"  
}  
}  
filter{  
json{  
source =\> "message"}  
split { field =\> "data" }  
mutate {  
add\_field =\> {  
category\_ =\> "%{[data][mainCatName]}"  
categoryid\_ =\> "%{[data][id]}"}  
}

```
   ruby {
    code => '
        	event.get("[data][subCat]").each {|k|
          	event.set("mainCatName" , event.get("category_"))
	event.set("id" , event.get("categoryurl_"))
	event.set("subcatId" , k["subcatId"])
	event.set("subcatName" , k["subcatName"])
        }
        event.remove("[data][subCat]")
    '
}

```

}  
output {

# elasticsearch {

# hosts =\> ["[http://localhost:9200/](http://localhost:9200/)"]

# index =\> "category"

# document\_type =\> "category"

#}  
stdout { codec =\> rubydebug }  
}

---

<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 20, 2020, 12:29pm UTC](https://discuss.elastic.co/t/transfer-json-file-to-multiple-document/220352/2 "2020-03-20T12:29:05Z")

</div>

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