JD has code to set up a server which receives JD queries and returns
their results. We would like to support JSON output in addition to the
serialized J and text formats which are currently supported.

Obviously sending only the first row of a result is no good, and sending
json which is decoded into a bunch of boxes is quite inefficient.

It sounds like you (and possibly the creators of convert/json) have
spent more time working with JSON data in J than the other way around.
If the answer to my question is that the feature that I'm looking for
doesn't currently exist, then that's still an answer and I will start
working on modifying the convert/json code.

Marshall

On Thu, May 15, 2014 at 04:19:22PM -0400, Raul Miller wrote:
> There are many ways of representing J's nouns in json, and many ways
> of representing json in J's nouns. But to convert between them in a
> consistent fashion, you have to live some simplifications.
> 
> For example, a J noun consists of type, shape and a list of values. So
> to fully represent a J noun in JSON all three of these should be
> emitted (and, for boxed arrays, this should be done recursively). But
> for most purposes this is an unnecessary complication.
> 
> Similarly, if we went with this representation, we then have two
> different classes of json to be read back in. "Everything" and "the
> subset which could have been a representation of a J noun".
> 
> Going the other direction, we can have a noun which is an exact
> representation of the value represented by arbitrary JSON (something
> other than a list of characters) and we have nouns in general. And the
> translation of a noun which is an exact representation of a JSON data
> structure would be translated to JSON using a different mechanism than
> the type/shape/list-of-values mechanism.
> 
> Do you see how this pans out?
> 
> Personally, I don't even parse the json which I'm currently working
> with. Instead, I treat it as a sequence of lines, where each line is a
> key/value pair. The key is between the first pair of double quotes on
> the line, the value is between the second pair of double quotes. If I
> was using JSON to transport arrays I would, of course, do this
> differently.
> 
> So... getting back to your case: what is the problem you are trying to
> solve? If you start with the solution before you have identified your
> problem, you'll typically wind up solving the wrong problem.
> 
> Thanks,
> 
> -- 
> Raul
> 
> 
> On Thu, May 15, 2014 at 3:30 PM, Marshall Lochbaum <[email protected]> 
> wrote:
> > The addon convert/json ignores all but the first element of a
> > (non-boxed) array when using enc_json.
> >
> >    enc_json 3 2 1
> > 3
> >    enc_json 3 2 1;4 3 2
> > [3,4]
> >    enc_json <"_1 ]3 2 1
> > [3,2,1]
> >    enc_json <"_1 ]i.3 3
> > [0,3,6]
> >
> > Is there a reason for this behavior? I realize that encoding 3 2 1 as
> > "[3,2,1]" is ambiguous (since (<"_1]3 2 1) has the same encoding), but
> > encoding as "3" seems even worse since it destroys data rather than
> > formatting.
> >
> > Is there a way around it without modifying the convert/json code? Of
> > course applying <"0 L:0 beforehand will suffice, but it is rather
> > inefficient and decodes to a boxed structure. The best possible solution
> > would be one that encodes any J noun unambiguously into reasonable JSON,
> > but either of the following would be useful:
> > - A method of conversion where dec_json is an exact inverse to end_json,
> >   but the intermediate JSON may not make sense (e.g. it has extra
> >   decorations for J arrays).
> > - A way of making any J noun a into another noun a1 such that
> >   a -: dec_json enc_json a1 .
> >
> > Thanks,
> > Marshall
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to