struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Griffith, Michael *" <Michael.Griff...@fda.hhs.gov>
Subject RE: AjaxTag 1.3 support?
Date Tue, 05 Feb 2008 16:27:52 GMT
Well, to answer my own question -- the answer is no. The JSON result
serialization process escapes quotation marks, so my response that
looked like this before serialization:

{"questions":{"420":"Is your Java Application a ME, SE or EE
application?","440":"If your Java Application is an SE application does
it use Java Web Start?","450":"If your Java Application is a Java Web
Application, list the application server used for
production","490":"List any Java Web Services Technologies
Used","500":"List any Java Web Application Technologies Used for
presentation","510":"List any Java EE Technologies used in your
application"}}

Looks like this after serialization:

"{\"questions\":{\"420\":\"Is your Java Application a ME, SE or EE
application?\",\"440\":\"If your Java Application is an SE application
does it use Java Web Start?\",\"450\":\"If your Java Application is a
Java Web Application, list the application server used for
production\",\"490\":\"List any Java Web Services Technologies
Used\",\"500\":\"List any Java Web Application Technologies Used for
presentation\",\"510\":\"List any Java EE Technologies used in your
application\"}}"

Making it unrecognizable to the autocompleter. This is pretty
frustrating to me. Maybe I am expecting this to do something that it was
never designed to do. My end goal was to be able to evaluate the ID of
the question that the user selected from the autocompleter.  

I'm giving up this path and looking elsewhere.  Thanks to everyone that
replied to my question and tried to help me.

MG

-----Original Message-----
From: Griffith, Michael * [mailto:Michael.Griffith@fda.hhs.gov] 
Sent: Tuesday, February 05, 2008 8:32 AM
To: Struts Users Mailing List
Subject: RE: AjaxTag 1.3 support?

Musachy, 

I can't seem to create the right blend of Entity objects/list/maps to
allow the JSON plug in to serialize this response for me. If I create
the string below using a loop, can I return it from the JSON plug in
without the plug in doing anything further to it?  

In other words, does the plug in look at what it is trying to serialize
and say, "Hey this is already valid JSON, I don't need to do anything to
it..." or will it try to add additional info to the string returned?

I'm guessing the shortest path for me is to just create the string in my
own serialization loop, but I don't want to confuse the plug in -- if
that makes any sense.

MG

-----Original Message-----
From: Musachy Barroso [mailto:musachy@gmail.com] 
Sent: Monday, February 04, 2008 6:30 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?

Right on.

On Feb 4, 2008 6:45 PM, Griffith, Michael *
<Michael.Griffith@fda.hhs.gov> wrote:
> Dave,
>
> I think the bigger problem is the JSON that is returned, while it may
be
> valid, it not in the right structure expected. I should be generating
> JSON like this:
>
> {"questions":{"420":"Is your Java Application a ME, SE or EE
> application?","440":"If your Java Application is an SE application
does
> it use Java Web Start?"}}
>
> The [] brackets seem to be ignored by the parser.
>
> -----Original Message-----
> From: Dave Newton [mailto:newton.dave@yahoo.com]
> Sent: Monday, February 04, 2008 5:34 PM
> To: Struts Users Mailing List
> Subject: RE: AjaxTag 1.3 support?
>
> ...
>
>
> That's probably an issue.
>
> --- "Griffith, Michael *" <Michael.Griffith@fda.hhs.gov> wrote:
> > Yea, I think so -- I copied and pasted this from the log
> file/console...
> >
> > From: Dave Newton [mailto:newton.dave@yahoo.com]
> >
> > Is it generating those brackets around your JSON?
> >
> > --- "Griffith, Michael *" <Michael.Griffith@fda.hhs.gov> wrote:
> >
> > > Musachy,
> > >
> > > Thanks for your many replies... Does this JSON look like the right
> > > format? As far as I can tell, it matches your snippet below -- but
I
> > get
> > > the same dojo parting error.
> > >
> > > [{"questions":{"420":"Is your Java Application a ME, SE or EE
> > > application?"}},{"questions":{"440":"If your Java Application is
an
> SE
> > > application does it use Java Web Start?"}},{"questions":{"450":"If
> > your
> > > Java Application is a Java Web Application, list the application
> > server
> > > used for production"}}]
> > >
> > > -----Original Message-----
> > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > Sent: Monday, February 04, 2008 3:52 PM
> > > To: Struts Users Mailing List
> > > Subject: Re: AjaxTag 1.3 support?
> > >
> > > The rule to use a map (simplest one) was added on 2.1, on 2.0.x
the
> > > easiest way to generate the json is to have an object with a map
> field
> > > that matches the name of "dataFieldName" in the autocompleter tag:
> > >
> > > class QuestionJson {
> > >   private Map questions;
> > >   ....
> > > }
> > >
> > > public QuestionJson getQuestionJson() {
> > >   Question q= ... [from my list]
> > >    Map m = new HaswhMap();
> > >    m.put("Key1", q.getQuestion1());
> > >    m.put("Key2", q.getQuestion2());
> > >    return new QuestionJson(m);
> > > }
> > >
> > > <s:autocompleter ... dataFieldName="questions" ../>
> > >
> > > that will generate something like:
> > >
> > > {
> > >   "questions": {
> > >      "Key1" : "Question 1",
> > >      "Key2" : "Question 2",
> > >   }
> > > }
> > >
> > > //that's the idea, but I typed out of what I remember which is
often
> > not
> > > good :)
> > >
> > > musachy
> > >
> > > On Feb 4, 2008 4:34 PM, Griffith, Michael *
> > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > Musachy,
> > > >
> > > > I'm still not getting it...
> > > > I am now serializing a list of maps with the entity id and text
I
> > > > want...
> > > >
> > > > Map<String,String> m= new HashMap<String,String>();
> > > > Question q= ... [from my list]
> > > > m.put("id", q.getId().toString());
> > > > m.put("text", q.getText());
> > > > newList.add(m);
> > > >
> > > > And my JSON result looks:
> > > >
> > > > [JSON][{"text":"Is your Java Application a ME, SE or EE
> > > > application?","id":"420"},{"text":"If your Java Application is
an
> SE
> > > > application does it use Java Web Start?","id":"440"},{"text":"If
> > your
> > > > Java Application is a Java Web Application, list the application
> > > server
> > > > used for production","id":"450"},{"text":"List any Java Web
> Services
> > > > Technologies Used","id":"490"},{"text":"List any Java Web
> > Application
> > > > Technologies Used for presentation","id":"500"},{"text":"List
any
> > Java
> > > > EE Technologies used in your application","id":"510"}]
> > > >
> > > > I added the @JSON annotation as such:
> > > >
> > > >         @JSON(name="question")
> > > >         public List<Map<String,String>> getNewList(){
> > > >                 return newList;
> > > >         }
> > > >
> > > > But it appears to be ignored.
> > > >
> > > > MG
> > > >
> > > > -----Original Message-----
> > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > >
> > > > Sent: Monday, February 04, 2008 2:53 PM
> > > > To: Struts Users Mailing List
> > > > Subject: Re: AjaxTag 1.3 support?
> > > >
> > > > Take a look here:
> > > >
> > > > http://cwiki.apache.org/S2PLUGINS/json-plugin.html
> > > >
> > > > musachy
> > > >
> > > > On Feb 4, 2008 3:43 PM, Griffith, Michael *
> > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > So, if you have an array of Entity objects, in my case
question:
> > > > >
> > > > > How can I produce?
> > > > >  {
> > > > >      "question" : [
> > > > >          ["1","question 1 text..."],
> > > > >          ["2","question 2 text..."]
> > > > >
> > > > >      ]
> > > > >  }
> > > > >
> > > > > -----Original Message-----
> > > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > > > Sent: Monday, February 04, 2008 2:37 PM
> > > > > To: Struts Users Mailing List
> > > > > Subject: Re: AjaxTag 1.3 support?
> > > > >
> > > > > yes, but the output will depend on what you feed the JSON
> result.
> > > > >
> > > > > musachy
> > > > >
> > > > > On Feb 4, 2008 3:20 PM, Griffith, Michael *
> > > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > > Musachy,
> > > > > >
> > > > > > I must have missed your point. Isn't the idea of using the
> JSON
> > > > > plug-in
> > > > > > so you don't have to iterate and create the list? If I have
an
> > > array
> > > > > or
> > > > > > Entity objects or maps, isn't there a way that the plug-in
> will
> > > > create
> > > > > > the JSON specified below?
> > > > > >
> > > > > > MG
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > > > > Sent: Monday, February 04, 2008 1:56 PM
> > > > > > To: Struts Users Mailing List
> > > > > > Subject: Re: AjaxTag 1.3 support?
> > > > > >
> > > > > >
> > > > > > to use the dataFIeldName, you have to return something like:
> > > > > >
> > > > > > {
> > > > > >     "state" : [
> > > > > >         ["Alabama","AL"],
> > > > > >         ["Alaska","AK"]
> > > > > >     ]
> > > > > > }
> > > > > >
> > > > > > if you are using 2.1 check this link:
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
http://cwiki.apache.org/WW/ajax-and-javascript-recipes.html#AjaxandJavaS
> > > > > > criptRecipes-Autocompleter
> > > > > >
> > > > > > otherwise just an array of arrays should do:
> > > > > >
> > > > > > [
> > > > > >     ["Alabama", "AL"],
> > > > > >     ["Alaska", "AK"]
> > > > > > ]
> > > > > >
> > > > > > musachy
> > > > > >
> > > > > > On Feb 4, 2008 2:46 PM, Griffith, Michael *
> > > > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > > > Musachy
> > > > > > >
> > > > > > > Here is the autocompleter tag and the JSON returned...
> > > > > > >
> >
> === message truncated ===
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>



-- 
"Hey you! Would you help me to carry the stone?" Pink Floyd

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message