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]