I have the following which i saved as a process variable of type text
I want to remove spacing between the commas and colons, trying to do so with substitute(pv!text, ": ", ":") and substitute(pv!text, ", ", ","). It works for the colon, but not for the comma, so the result is the following
Also, when i use stripwith(pv!text,","), the comma can be affected and removed. Wondering why substitute cant do the same.
Any ideas as to why this is happening or how else I can remove the space between the comma?
Discussion posts and replies are publicly visible
Why you are using it as a string? any particular scenario?
i am receiving JSON through an API, and would like to format it and email it with the Send Email smart service
Is there a reason to NOT use fromJson()? Then you would have an easy to navigate Appian dictionary.
I would, but the recipient of the email is expecting the format shown in this post as business users want to copy and paste the JSON directly into their Excel workbooks where formulas are catered to this formatting.
This works a expected:
a!localVariables( local!json: "{""userId"": ""abc123"", ""submissionId"": ""111222333"", ""createdDt"": ""2022-06-17T04:07:19.611Z""}", substitute( substitute(local!json, ": ", ":"), ", ", "," ) )
Thanks so much for your help so far, however, if the json were to be a rule input taking in a process variable from a process, instead of a local variable, then the same issues are encountered.
Which issues?
The substitution works as expected, regardless of a local, rule input or process variable.
Maybe you can explain in detail what you are doing.
Hi Stefan, I realised that the space after the comma is char(10), but on top of that, it seems that substitute(ri!json, char(10), "") would actually result in the char(10) being replaced by a space instead. The work around that works would be to replace char(10) with a character, then subsequently replace that character. For example:
substitute(substitute(substitute(substitute(substitute( tostring( ri!json ),concat(char(10)," "),"this_is_char(10)"), "this_is_char(10) ",""),", ",",")," : ",":"),", ",",")
Thanks for the input up till now, greatly appreciate it!
This seems to be a tremendous effort ....
Depending on the system that created this JSON, a line-break can be represented by char(10), char(13) or char(10)&char(13). I think this is what you see.