Focal Point Banner
Community Center Education Summit Technical Support User Groups
Let's Get Social!

Facebook Twitter LinkedIn YouTube
Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [CLOSED] Unescaped quotes in FORMAT JSON
Go
New
Search
Notify
Tools
Reply
  
[CLOSED] Unescaped quotes in FORMAT JSON
 Login/Join
 
Virtuoso
posted
There's probably some setting to escape these, but there appears to be absolutely zero documentation on HOLD FORMAT JSON.

Here's the issue:
TABLE FILE CAR
SUM
     COMPUTE OUCH/A20 = 'A "quote"!';
BY  COUNTRY
ON TABLE PCHOLD FORMAT JSON
END


This returns JSON:
{ "records" : [
{ "COUNTRY" : "ENGLAND","OUCH" : "A "quote"!" }
,
{ "COUNTRY" : "FRANCE","OUCH" : "A "quote"!" }
,
{ "COUNTRY" : "ITALY","OUCH" : "A "quote"!" }
,
{ "COUNTRY" : "JAPAN","OUCH" : "A "quote"!" }
,
{ "COUNTRY" : "W GERMANY","OUCH" : "A "quote"!" }
] }


The quotes in the COMPUTE don't get escaped! Invalid JSON is the result.
Unfortunately, we have some data that contains double-quotes in descriptions (not so strange for a tyre company; wheel sizes are usually expressed in inches!).

For XML formats, we can enable SET HTMLENCODE ON. Is there a similar setting for JSON?

This message has been edited. Last edited by: FP Mod Chuck,


WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, Output: HTML, PDF, Excel 2010
: Member of User Group Benelux :
 
Posts: 1573 | Location: Enschede, Netherlands | Registered: August 12, 2010Reply With QuoteReport This Post
Platinum Member
posted Hide Post
This is what you want. Right?

{"records" : [
{"COUNTRY" : "ENGLAND","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "FRANCE","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "ITALY","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "JAPAN","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "W GERMANY","OUCH" : "A \"quote\"!"}
]}

The Escaping special characters functionality was put in WebFOCUS 8203 (DM 7708).

Efrem
 
Posts: 216 | Location: New York | Registered: July 27, 2004Reply With QuoteReport This Post
Expert
posted Hide Post
You will probably have to use something like STRREP to replace " with \" before the data is returned.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.01OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Know The Code

 
Posts: 5913 | Location: Land of the Darug people, Terra Australis Incognita | Registered: October 31, 2006Reply With QuoteReport This Post
Platinum Member
posted Hide Post
So, I replaced the PCHOLD with HOLD and saved the output to the baseapp folder:
  
TABLE FILE CAR
SUM
     COMPUTE OUCH/A20 = 'A "quote"!';
BY  COUNTRY
ON TABLE HOLD AS baseapp/_json FORMAT JSON
END


When I opened the json file with a text editor (since AppStudio can't open it) It has the properly escaped double quotes:
  
{"records" : [
{"COUNTRY" : "ENGLAND","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "FRANCE","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "ITALY","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "JAPAN","OUCH" : "A \"quote\"!"}
,
{"COUNTRY" : "W GERMANY","OUCH" : "A \"quote\"!"}
]}


I am on version 8202M, so maybe that is a bug in your 8.1.03 version. I would submit a ticket.


Hallway
WF(Prod):8202M
WF(Test):8202M
OS/Platform:Win 10
Outputs:All
 
Posts: 217 | Location: Salt Lake City, UT, USA | Registered: November 18, 2015Reply With QuoteReport This Post
Platinum Member
posted Hide Post
This works for an HTML output as well:
  
TABLE FILE CAR
SUM
     COMPUTE OUCH/A20 = 'A "quote"!';
BY  COUNTRY
ON TABLE HOLD FORMAT JSON
END

-HTMLFORM BEGIN NOEVAL
<pre>
!IBI.FIL.HOLD;
</pre>
-HTMLFORM END


Try changing the PCHOLD to HOLD and see if that makes a difference.


Hallway
WF(Prod):8202M
WF(Test):8202M
OS/Platform:Win 10
Outputs:All
 
Posts: 217 | Location: Salt Lake City, UT, USA | Registered: November 18, 2015Reply With QuoteReport This Post
Master
posted Hide Post
Hi Wep,

I didn't even know JSON was an option. ( but we still on 8.009 ).

I've tested your code on our to-be-environment ( 8203 ) there it works fine.

I do get escaped output:

snippet:
{"records" : [{"COUNTRY" : "ENGLAND","OUCH" : "A \"quote\"!"},{"COUNTRY" : "FRANCE","OUCH" : "A \"quote\"!"},{"


might be a 'know-to-some' bug that's been fixed in ( at least ) 8203.

Greets,
Dave


-********************
-* Code. Black, no sugar.
-********************

** Member of the Benelux Usergroup **

_____________________
WF: 8.0.0.9
 
Posts: 659 | Location: Veghel, The Netherlands | Registered: February 16, 2010Reply With QuoteReport This Post
Virtuoso
posted Hide Post
Thanks for confirming this fixed in 82.

This means that the 8103 JSON implementation has several issues that I know of:

  • Single item results have mismatching accolade pairs
  • Double-quotes in strings are not escaped
  • There is no documentation


Bit of a mess...


WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, Output: HTML, PDF, Excel 2010
: Member of User Group Benelux :
 
Posts: 1573 | Location: Enschede, Netherlands | Registered: August 12, 2010Reply With QuoteReport This Post
Platinum Member
posted Hide Post
Wep5622,
May I suggest that you open a Hottrack case asking for a Documentation enhancement for HOLD FORMAT JSON.

It could help other users in the future.
 
Posts: 216 | Location: New York | Registered: July 27, 2004Reply With QuoteReport This Post
  Powered by Social Strata  
 

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [CLOSED] Unescaped quotes in FORMAT JSON

Copyright © 1996-2018 Information Builders, leaders in enterprise business intelligence.