Hello,
The characters at the beginning of the data are your headers. For some 
reason you are asking YAJL for the JSON data in UTF-8, but you are 
passing the headers as EBCDIC.  If you view the data as EBCDIC, the 
headers would be readable and the JSON would not. But, since you are 
viewing it in UTF-8, the JSON is readable and the headers are not.  
Depending on your Apache setup this might not be a problem.
The extra characters at the end of your code is a different matter, however.
The prototype for JSON01R doesn't match the PI in the calling program.  
The prototype in the calling program uses a VARCHAR parameter, but 
JSON01R is defined with a fixed-length 1000A parameter.
Also, you're using OPTIONS(*VARSIZE), but you are not doing so safely.  
Your code is attempting to use the entire string rather than just the 
part that is passed.   When you do options(*Varsize) the caller does not 
have to pass the entire string -- but the %LEN() BIF doesn't know that, 
and so when you do %LEN() it's giving you 1000, since the parameter is 
1000A, which is always 1000 chars long.  So you will get whatever 
happens to be in memory after the headers and/or JSON document since you 
are not handling this correctly.
I don't understand why JSON01R is split into a separate program. This 
seems to simply make things more complicated and confusing, and does not 
offer any sort of value that I can see vs. simply calling QtmhWrStout 
directly.
As you and Brad already noted, you can use yajl_writeStdout() that is 
meant to be simpler than coding it yourself. But coding it yourself 
would also work fine if you wanted to do it that way. The only reason it 
is not is because you have these bugs in your code.
On 8/27/2019 5:02 AM, Cabero wrote:
Hello.
  I would appreciate input as I can't get rid of the first two lines and
the third has the { right at the end. Here is the code -
https://ibmrestapis.blogspot.com/p/blog-page_26.html
Ã-*£…*£`£¨--…z@----"‰ƒ£‰-*a'¢-*^@ƒˆ(tm)¢…£~¤£†`ø
%
%       {
     "success": true,
     "errmsg": "",
     "count": 2,
     "item": [
         {
             "CompanyCode": 200,
             "BranchCode": 222,
             "SLATime": 22,
             "SLAPrewarnTime": 33,
             "SendEmail": "N",
             "SendSMS": "N",
             "RecordStatus": "D"
         },
         {
             "CompanyCode": 300,
             "BranchCode": 20,
             "SLATime": 2,
             "SLAPrewarnTime": 3,
             "SendEmail": "Y",
             "SendSMS": "Y",
             "RecordStatus": ""
         }
     ]
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Yours sincerely.
Esteban Cabero
www.linkedin.com/in/cabero
      Cell: +27(0)843963122
As an Amazon Associate we earn from qualifying purchases.