Knowledge Base Article

Convert a flat JSON object to x-www-form-urlencoded

Question

How to create a Groovy script, which transforms a non-nested JSON object to the x-www-form-urlencoded format before sending it in the request body.

 

Example: converting this object:

 

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

 

should result in this string:

 

name=John&age=30&city=New%20York 

 

 
Answer

 

def jsonData = '''
{
	"name":"John",
	"age":30,
	"city":"New York"	
}
'''
def slurper = new groovy.json.JsonSlurper().parseText(jsonData)
def str = new StringBuilder()
def iter = slurper.keySet().iterator()
while(iter.hasNext()){
	def key = iter.next().toString()
	def value = slurper.get(key).toString().trim().replaceAll(" ","20%")
	str.append("$key=$value&")
}
log.info str[0..str.size()-2]

 

Published 4 years ago
Version 1.0
No CommentsBe the first to comment