# Groovy parseText to json

**URL:** <https://discuss.elastic.co/t/groovy-parsetext-to-json/69955>\
**Category:** Elasticsearch\
**Created:** [December 25, 2016, 5:39am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955 "2016-12-25T05:39:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevin\_chen](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@kevin\_chen](https://discuss.elastic.co/u/kevin_chen)\
**Post date:** [December 25, 2016, 5:39am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/1 "2016-12-25T05:39:28Z")

</div>

## I want to parse Text to json in groovy script but get errors:

## failed to load/compile script [my\_script]

## This is my\_script.groovy file:

d=doc['data'].value  
//d='data=%7B%22request%22%3A%7B%22model%22%3A%22Score%22%2C%22action%22%3A%22getSignInScoreEx%22%2C%22parameters%22%3A%7B%22uid%22%3A%22108043431%22%7D%7D%7D'  
//path='request.parameters.uid'  
//val='108043431'

ebody=d.substring(5);  
body=java.net.URLDecoder.decode(ebody,"UTF-8");  
json=new groovy.json.JsonSlurper().parseText(body);  
paths=path.split('\.')

## obj = json for(String p : paths) { obj=obj[p] } if(obj==val) { return true } else { return false }

after some debug,problem may comes from "json=new groovy.json.JsonSlurper().parseText(body);"

anyone can help me? thx

(ElasticSearver version: 2.4.1)

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [December 25, 2016, 3:26pm UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/2 "2016-12-25T15:26:13Z")

</div>

Jsonslurper is not supported iirc.

---

<div class="post-metadata">

**Author:** ![kevin\_chen](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@kevin\_chen](https://discuss.elastic.co/u/kevin_chen)\
**Post date:** [December 26, 2016, 1:30am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/3 "2016-12-26T01:30:45Z")

</div>

What class should I use instead?

---

<div class="post-metadata">

**Author:** ![kevin\_chen](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@kevin\_chen](https://discuss.elastic.co/u/kevin_chen)\
**Post date:** [December 26, 2016, 3:32am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/4 "2016-12-26T03:32:22Z")

</div>

thx!  
after google,i found a solution:

1. drop `http://central.maven.org/maven2/org/codehaus/groovy/groovy-json/2.4.6/groovy-json-2.4.6.jar` in the ${ELASTICSEARCH\_HOME}/modules/lang-groovy/ directory for it to work.
2. add permissions to file: ${ELASTICSEARCH\_HOME}/modules/lang-groovy/plugin-security.policy  
permission org.elasticsearch.script.ClassPermission "groovy.json.JsonSlurper";

---

<div class="post-metadata">

**Author:** ![kevin\_chen](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@kevin\_chen](https://discuss.elastic.co/u/kevin_chen)\
**Post date:** [December 27, 2016, 6:39am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/5 "2016-12-27T06:39:15Z")

</div>

it works only in:  
./bin/elasticsearch -d --security.manager.enabled  
es version:2.4.2

---

<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:** [January 24, 2017, 6:39am UTC](https://discuss.elastic.co/t/groovy-parsetext-to-json/69955/6 "2017-01-24T06:39:26Z")

</div>

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