Thanks for the pointer, you are right, json does not like objects as keys.  I 
re-worked my data structure, and the serialized response was valid. 


Brian Relph

-----Original Message-----
From: Musachy Barroso [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 11, 2008 8:45 PM
To: Struts Users Mailing List
Subject: Re: [S2] JSON plugin parser error

the problem will be when you try to access that map using javascript.

On Tue, Nov 11, 2008 at 8:38 PM, Relph,Brian <[EMAIL PROTECTED]> wrote:

>
> I have an object that is related to a set of other objects.  I suppose 
> I could make 2 maps both keyed by the same primitive, one for the 
> objects, and one to the related objects.  But why?  You say it is not 
> a good idea, but my objects all implement hashcode and equals, and 
> outside of trying to transform the structure to json, it works 
> perfectly.  Is there some json limitation with having object keys?  
> Looking at the transformer in the plugin, it seems to handle object keys just 
> fine.
>
>
> Brian Relph
>
> -----Original Message-----
> From: Musachy Barroso [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, November 11, 2008 6:42 PM
> To: Struts Users Mailing List
> Subject: Re: [S2] JSON plugin parser error
>
> Using objects as keys is probably not a good idea.
>
> musachy
>
> On Tue, Nov 11, 2008 at 6:25 PM, Relph,Brian <[EMAIL PROTECTED]>
> wrote:
>
> >
> > Hello,  I am trying to use the JSON plugin in my struts2 application.
> > I am getting a parser error on the string returned from the server.  
> > I think the plugin is having problems converting my Map to JSON.
> >
> > Here is my object that I am trying to convert to JSON:
> >
> > *public** class** RoleDetails** extends* RoleImpl {
> >
> >        * private* List<Role> directParents;
> >
> >        * private* Map<Role, Set<Identity>> 
> > transitiveParentsWithSources;
> >
> >        * private* List<Role> directChildren;
> >
> >        * private* Map<Role, Set<Identity>> 
> > transitiveChildrenWithSources;
> >
> >        * private* List<Group> directGroupChildren;
> >
> >        * private* Map<Group, Set<Identity>> 
> > transitiveGroupChildrenWithSources;
> >
> >        * private* List<String> directUsernames;
> >
> >        * private* Map<String, Set<Identity>> 
> > transitiveUsernamesWithSources;
> >
> >        * private* List<Permission> directPermissionParents;
> >
> >        * private* Map<Permission, Set<Identity>> 
> > transitivePermissionParentsWithSources;
> >
> > I have attached the output from one of my requests, but it is pretty 
> > long, here is the portion where the json compiler explodes:
> >
> > <<json.txt>>
> >
> > "transitiveChildrenWithSources":{},"transitiveGroupChildrenWithSourc
> > es
> > ":*ERROR
> > HERE*{{"description":"super
> > users","groupNames":[],"name":"hin_wasadmins","usernames":["ar016581
> > ", 
> > "temp_wasadmin","admin_usertool","relphie","bgraves","newtestuser","
> > fk
> > 3794","samkarl","test_usertool","kp016678","bo017459","bk016677","rw
> > 01 2795","kchintan","kp014672"]}:[{"description":"Health
> > Management
> > Advisor","groupNames":["hin_wasadmins"],"name":"HHM_Advisor","userna
> > me
> > s":["testuser13","kp016678","hmadvisor1","hmadvisor2_cert","hmadviso
> > r1 
> > _cert","hmadvisor2","hmadvisor3","hmadvsr2","hmadvisor3_cert","hmadv
> > sr
> > 1","hmadvsr3"]}]}
> >
> > So it looks like there is either a problem with my map keyed by 
> > object, or the transitiveChildrenWithSources map being empty.  Any
> thoughts?
> >
> > *Brian Relph* | Software Engineer | Cerner Corporation | 
> > 816-201-7642
> > | **
> > [EMAIL PROTECTED] <[EMAIL PROTECTED]> | 
> > ***www.cerner.com*<http://www.cerner.com>
> > ------------------------------
> > CONFIDENTIALITY NOTICE This message and any included attachments are 
> > from Cerner Corporation and are intended only for the addressee. The 
> > information contained in this message is confidential and may 
> > constitute inside or non-public information under international, 
> > federal, or state securities laws. Unauthorized forwarding, 
> > printing, copying, distribution, or use of such information is 
> > strictly prohibited and may be unlawful. If you are not the 
> > addressee, please promptly delete this message and notify the sender 
> > of the delivery error by e-mail or you may call Cerner's corporate 
> > offices in Kansas
> City, Missouri, U.S.A at (+1) (816)221-1024.
> >
> > --------------------------------------------------------------------
> > - To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
>
> --
> "Hey you! Would you help me to carry the stone?" Pink Floyd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


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

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to