Gettng Json parse error on server side when sending a JSON API with special characters like Euro/dollar symbol.
A sample code used is given below
	
	
	
		
				
			A sample code used is given below
		Code:
	
	DEFINE INPUT  PARAMETER i-payload         AS LONGCHAR   NO-UNDO.
DEFINE OUTPUT PARAMETER i-out             AS LONGCHAR   NO-UNDO.
DEFINE VARIABLE myAddJson      AS JsonObject NO-UNDO.
DEFINE VARIABLE myAddJson2     AS JsonObject NO-UNDO.
DEFINE VARIABLE myAddJson3     AS JsonObject NO-UNDO.
DEFINE VARIABLE i-post        AS MEMPTR    NO-UNDO.
 
FIX-CODEPAGE(i-out) = "UTF-8".
 
dataParser = NEW ObjectModelParser().
datajson = CAST(dataParser:parse(i-payload ),JsonObject).
myAddJson  = NEW JsonObject().
myAddJson:ADD("payLoad",datajson).
                         
myAddJson:WRITE(i-out, TRUE, "UTF-8").
set-size(i-post) = LENGTH(i-out,"RAW") + 1.
put-string(i-post,1) = i-out.
CREATE SOCKET hSocket.
IF hSocket:CONNECTED()
    THEN hSocket:DISCONNECT().
IF NOT hSocket:CONNECT(v-con) THEN
DO:
    ASSIGN
        o-errmsg = "Unable to connect to host " + i-hostname
                  + " port " + STRING(i-portnum).
    DELETE OBJECT hSocket.
    RETURN.
END.
IF NOT hSocket:WRITE(i-post, 1, GET-SIZE(i-post) ) THEN
DO:
    SET-SIZE(i-post) = 0.
    ASSIGN
        o-errmsg = "Error writing to socket".
    hSocket:DISCONNECT().
    DELETE OBJECT hSocket.
    RETURN.
END.
[/code ]
/*** Sample special character data in json **/
{
          "creditName": "TEST Champagne - Dom PérignonP2 Vintage"
}
When tried to send same API from postman tool, API is successfully received at server side.no parse error.
			
				Last edited: 
			
		
	
								
								
									
	
								
							
							 
	 
 
		
