# Painless scripting JSON functions

**URL:** <https://discuss.elastic.co/t/painless-scripting-json-functions/98511>\
**Category:** Elasticsearch\
**Created:** [August 28, 2017, 6:30am UTC](https://discuss.elastic.co/t/painless-scripting-json-functions/98511 "2017-08-28T06:30:52Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Mike.Barretta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mike.barretta/32/16688_2.png) [@Mike.Barretta](https://discuss.elastic.co/u/Mike.Barretta)\
**Post date:** [August 28, 2017, 11:42pm UTC](https://discuss.elastic.co/t/painless-scripting-json-functions/98511/2 "2017-08-28T23:42:52Z")

</div>

@HDB there are no JSON parsing classes in the [Painless API](https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-api-reference.html).

To do what you're considering, I think you'll want to re-index that data using Logstash to convert the string field into a JSON object using the [JSON filter](https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html) and [dropping fields](https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html#plugins-filters-json-remove_field).

Logstash pipeline: [Elasticsearch input](https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html#plugins-filters-json-remove_field) --\> [JSON filter](https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html) --\> [Elasticsearch output](https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html)

---

_[View the full topic](https://discuss.elastic.co/t/painless-scripting-json-functions/98511)._
