Charles, if you're not on 7.3 the built-in JSON parser isn't going to help much. In that case, I may be able to help you out. We move lots of JSON between Unidata and our Red Leaf web portal.
On Fri, Aug 2, 2013 at 1:19 PM, <[email protected]> wrote: > Very good advice. I did know that XML support was built-in to Unidata, > and apparently JSON support is included in the newest version of Unidata. > I guess I am leaning towards JSON because as Aaron Titus pointed out, it > is more lightweight than XML. > > Charles Shaffer > Senior Analyst > NTN-Bower Corporation > > > > From: "Tony Gravagno" <[email protected]> > To: [email protected], > Date: 08/02/2013 01:05 PM > Subject: Re: [U2] XML or JSON converter for Unibasic > Sent by: [email protected] > > > > I do this sort of thing all the time. I'm also curious to know if a > Uni-query can be rendered directly as XML or JSON. I know QM can > render as XML with a simple modifier on the command-line, thought U2 > could do this too. JSON is a different animal and I'm not aware of any > decent JSON builders for any MV environment - they're all proprietary > and unpublished except for the new one in Unidata. > > The real problem with all of these XML/JSON solutions is that the > output we get from our reports is 2-dimensional columns and rows - a > curious anomaly after all of these years, considering how much we > pride ourselves on being multi-dimensional. XML and JSON aren't of > much use with flat data. Coding a 2D export to XML or JSON is trivial. > Where this gets complex is in nested relationships, XML and JSON excel > in representation of multi-dimensional data, and again, none of the MV > platforms have rushed to provide decent rendering in this area. > (Except maybe TigerLogic which has built a rich XML server around the > D3 core, like DataStage was built around Universe.) > > In plain terms, a U2 report will have something like: > ORD# SHIP.ADDR SHIP.CITY ... > ORD# SHIP.ADDR SHIP.CITY ... > That's 2D. But when you're passing data to another environment, it > expects 3D: > <order> > <id>123</id> > <shipto> > <addr>...</addr> > <city>...</city> > </shipto> > </order> > > JSON is exactly the same as XML in structure, just different in > syntax. Part of the problem is that the output here needs to use names > which are acceptable in XML/JSON tags. That might come from the dict > item, probably not unless you have custom dict items just for this. > The way this is usually done is with metadata stored in the dict item > or somewhere else. So you'll have a dict item named ORD#, the > description might say "Order ID" but the "node name" will be "id". > > Note above that I'm using <id>123</id>. But that could have been done > like this: > <order id="123"> > The issue here is that there is no schema definition that defines > whether you use elements (unique nodes) or attributes (id="123") > within elements. Hardcoded general-purpose solutions will work for > your internal purposes but they won't work as a general solution for > exchanging data with other entities. > > And let's not even get into namespaces. > > In summary, the above explains why it's tough to have a > general-purpose solution for rendering query output as XML or JSON. A > lot of other metadata is required in order to describe what the > document will look like. The only recourse we have is to use the XML > hooks provided in the DBMS, to hard-code on a case-by-case basis, or > to export and let some external tool do the formatting ... but in all > cases you still need to provide metadata or none of these tools will > know whether to use "id" or "ordnum", or whether to use elements or > attributes. > > All of that said, the nature of my business is to create solutions to > problems like this. I'll be happy to do so for any company that > associates value with such solutions. > > HTH > Tony Gravagno > Nebula Research and Development > TG@ remove.pleaseNebula-RnD.com > http://Nebula-RnD.com/blog > Visit http://PickWiki.com! Contribute! > http://Twitter.com/TonyGravagno > http://groups.google.com/group/mvdbms > https://bitbucket.org/foss4mv/nebulaware > > > > > > > > > From: Charles_Shaffer > > I am looking for a way to send the output of a Unidata data query in > > Unibasic back to a web server (PHP) for building web pages. > > > > Up until now I have used a proprietary method (LF, HTAB, etc.), but > I > > would like to simplify/standardize the method. Seems like this > could > > be done with XML, or JSON or "something I don't know about." Has > > anyone had experience with this and could you offer some advice? > > > > Hoping for a simple subroutine approach as opposed to a > > comprehensive commercial package. Management here is very "price > > sensitive." When I say price sensitive, I mean that if it costs > anything, > > they get their panties all in a bunch. A few hundred dollars might > be > > sellable, a few thousand would not be. > > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > > -- > This email was Virus checked by UTM 9. http://www.astaro.com > > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
