cancel
Showing results for 
Search instead for 
Did you mean: 

Json structure having fields to replace the field values abc to abc:def:67:dfdf in SAP HCI

0 Kudos

Dear Experts,

Please help me Groovy Script to Find and Replace Text the field values.

E.g:

Input Payload

{ "userName": "",

"name":

{ "givenName": "

", "familyName": "",

"middleName": "",

},

After Conversion Output should like this:

{ "user:Name:123333": " ",

"na:m:e":

{ "$givenName": "

", "$family:Name": "",

"middle:Name": "",

}

Please help me to find and replace a field names.

i have tried this code but i am getting only one i need to replace multiple fileds

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
def msgBodyOriginal = message.getBody(java.lang.String) as String
def msgBodyModified = msgBodyOriginal.replace('userName', 'user:Name:123333')
message.setBody(msgBodyModified)
return message
}

Regards,

Naveen

Accepted Solutions (1)

Accepted Solutions (1)

apu_das2
Active Contributor
0 Kudos

Please try putting below

\$givenName

Answers (2)

Answers (2)

0 Kudos

How can i add a new field in the json using the above code?

apu_das2
Active Contributor
0 Kudos

Try this -

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
def msgBodyOriginal = message.getBody(java.lang.String) as String
msgBodyOriginal.replace('userName', 'user:Name:123333')

msgBodyOriginal.replace('name', 'na:m:e')

msgBodyOriginal.replace('givenName', '$givenName')

msgBodyOriginal.replace('familyName', '$family:Name')

msgBodyOriginal.replace('middleName', 'middle:Name')
message.setBody(msgBodyOriginal)
return message;
}

0 Kudos

Hi Apu,

Thanks for replying.

I have tried this code not working..

Then i have tried below this code working fine

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;


def Message processData(Message message) {


def msgBodyOriginal = message.getBody(java.lang.String) as String


def msgBodyModified = msgBodyOriginal.replaceAll('userName','user:Name:123333')
def msgBodyModified1 = msgBodyModified.replaceAll('givenName', '$givenName')
def msgBodyModified2 = msgBodyModified1.replaceAll('familyName',  '$family:Name')
message.setBody(msgBodyModified2)
return message;
}
But 'givenName' to '$givenName' i am not able to convert,I am getting this error:
.java.lang.Exception: java.lang.IllegalArgumentException: Illegal group reference@ line 9 in RemoveBracket.groovy
Please help me to pass $ symbol along with fieldname.
Regards,
Naveen