Dear all,
I have a the following code whih return a Json response from an http request which is returned as below and is an Array of a single item ( The return data format is given from MSGraph Api ):
<span>public</span> <span>String</span><span> getGuestUserId</span><span>(</span><span>String</span> <span>AuthToken</span><span>,</span><span>String</span><span> userEmail</span><span>){</span>
<span>String</span><span> _userId
</span><span>def</span><span> http </span><span>=</span> <span>new</span> <span>HTTPBuilder</span><span>(</span><span>graph_base_user_url </span><span>+</span> <span>"?"</span><span>)</span><span> http</span><span>.</span><span>request</span><span>(</span><span>GET</span><span>)</span> <span>{</span><span> requestContentType </span><span>=</span> <span>ContentType</span><span>.</span><span>JSON
</span><span>//uri.query = [ $filter:"mail eq '$userEmail'"].toString()</span><span> uri</span><span>.</span><span>query</span><span>=[</span><span>$filter</span><span>:</span><span>"mail eq '$userEmail'"</span><span>]</span><span> headers</span><span>.</span><span>'Authorization'</span> <span>=</span> <span>"Bearer "</span> <span>+</span> <span>AuthToken</span><span>
response</span><span>.</span><span>success </span><span>=</span> <span>{</span><span> resp</span><span>,</span><span> json </span><span>-></span><span> _userId</span><span>=</span><span>json</span><span>[</span><span>"value"</span><span>]</span>
<span>}</span>
<span>// user ID not found : error 404</span><span> response</span><span>.</span><span>'404'</span> <span>=</span> <span>{</span><span> resp </span><span>-></span><span>
_userId </span><span>=</span> <span>'Not Found'</span>
<span>}</span>
<span>}</span><span> _userId
</span><span>}</span> The return json value is as below :
<span>[{</span><span>businessPhones</span><span>=[],</span><span> displayName</span><span>=</span><span>user test</span><span>,</span><span> givenName</span><span>=</span><span>null</span><span>,</span><span> jobTitle</span><span>=</span><span>null</span><span>,</span><span>
mail</span><span>=</span><span>user1@gmail</span><span>.</span><span>com</span><span>,</span><span> mobilePhone</span><span>=</span><span>null</span><span>,</span><span> officeLocation</span><span>=</span><span>null</span><span>,</span><span> preferredLanguage</span><span>=</span><span>null</span><span>,</span><span>
surname</span><span>=</span><span>null</span><span>,</span><span> userPrincipalName</span><span>=</span><span>user1_gmail</span><span>.</span><span>com</span><span>#EXT#@rlxcom.onmicrosoft.com, <strong>id=7982c558- </strong></span><strong>ba50-4380-9e94-114d8b340720</strong><span>}]</span>What I am trying to do from Script runner is to retrive only the Id member field
From the script console I have try to access it as below :
def ret =apiHelper.getGuestUserId(apiHelper.Token,email)
def json = new groovy.json.JsonSlurper().parseText ret
But is does not work and I get an exception as below:
groovy.json.JsonException: expecting '}' or ',' but got current char 'b' with an int value of 98 The current character read is 'b' with an int value of 98 expecting '}' or ',' but got current char 'b' with an int value of 98 line number 1 index number 2 [{businessPhones=[], displayName=serge cal test, givenName=null, jobTitle=null, mail=calderara.serge@gmail.com, mobilePhone=null, officeLocation=null, preferredLanguage=null, surname=null, userPrincipalName=calderara.serge_gmail.com#EXT#@rlxcom.onmicrosoft.com, id=7982c558-ba50-4380-9e94-114d8b340720}] ..^ at org.apache.groovy.json.internal.JsonParserCharArray.complain(JsonParserCharArray.java:149) at org.apache.groovy.json.internal.JsonParserCharArray.decodeJsonObject(JsonParserCharArray.java:140) at org.apache.groovy.json.internal.JsonParserCharArray.decodeValueInternal(JsonParserCharArray.java:182) at org.apache.groovy.json.internal.JsonParserCharArray.decodeJsonArray(JsonParserCharArray.java:322) at org.apache.groovy.json.internal.JsonParserCharArray.decodeValueInternal(JsonParserCharArray.java:178) at org.apache.groovy.json.internal.JsonParserCharArray.decodeValue(JsonParserCharArray.java:153) at org.apache.groovy.json.internal.JsonParserCharArray.decodeFromChars(JsonParserCharArray.java:43) at org.apache.groovy.json.internal.JsonParserCharArray.parse(JsonParserCharArray.java:380) at org.apache.groovy.json.internal.BaseJsonParser.parse(BaseJsonParser.java:110) at Script127.run(Script127.groovy:20)
Any idea how can I return the ID part of the Json string ?
Thanks for help
regards