# Can not parse bash output as json

**URL:** <https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809>\
**Category:** Logstash\
**Created:** [August 20, 2020, 6:11pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809 "2020-08-20T18:11:11Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yevhen\_Baidiuk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/yevhen_baidiuk/32/57956_2.png) [@Yevhen\_Baidiuk](https://discuss.elastic.co/u/Yevhen_Baidiuk)\
**Post date:** [August 20, 2020, 6:11pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809/1 "2020-08-20T18:11:11Z")

</div>

I use shall script to generate dataset but logstash won't accept my message

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/2/4/246192ff77c6ece71177ec2e51d5016e0b2ab7da.png)  
 ![image](https://us1.discourse-cdn.com/elastic/original/3X/b/8/b84d88821c4883bdb56819f68bc049181d6c9810.png)  
 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/7/673367c94a0826853d8c12351c8ac7cff8998c10.png)  
Thanks for feature help.

---

<div class="post-metadata">

**Author:** ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)\
**Post date:** [August 20, 2020, 6:28pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809/2 "2020-08-20T18:28:45Z")

</div>

The below works. Adding quotes around the field names.

```auto
input {
  generator {
    lines => [
     '{"results": [{ "id": "ICR=1549", "date": "2020-08-14" }]}'
    ]
    count => 1
    codec => "json"
  }
}
filter {
}
output {
  stdout { codec => "rubydebug" }
}

```

The below is what it appears like your data is formatted and gives a `_jsonparsefailure`

```auto
input {
  generator {
    lines => [
     '{results: [{ id: "ICR=1549", date: "2020-08-14" }]}'
    ]
    count => 1
    codec => "json"
  }
}
filter {
}
output {
  stdout { codec => "rubydebug" }
}

```

Add sine double quotes in your shell script and test.

---

<div class="post-metadata">

**Author:** ![Yevhen\_Baidiuk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/yevhen_baidiuk/32/57956_2.png) [@Yevhen\_Baidiuk](https://discuss.elastic.co/u/Yevhen_Baidiuk)\
**Post date:** [August 21, 2020, 12:34pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809/3 "2020-08-21T12:34:04Z")

</div>

So if bash outPut (") instead (") it is not a problem .

problem was last comma which corrupted whole json string.

---

<div class="post-metadata">

**Author:** ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)\
**Post date:** [August 21, 2020, 12:52pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809/4 "2020-08-21T12:52:16Z")

</div>

I was suggesting editing your shell script to be something like

```auto
results="\"id\":\"${id}\",\"date\":\"${time}\"},${results}"

```

---

<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:** [September 18, 2020, 12:52pm UTC](https://discuss.elastic.co/t/can-not-parse-bash-output-as-json/245809/5 "2020-09-18T12:52:22Z")

</div>

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