Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #27492
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Unable to Overload toString for Object |
| Date | 2014-02-12 13:57 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <ldgg7n$2nk$1@dont-email.me> (permalink) |
| References | (1 earlier) <a4GdnaxRH4JrfGTPnZ2dnUVZ8vednZ2d@giganews.com> <1138f80c-bc7c-4edd-a91b-fb5f8e2137d6@googlegroups.com> <afa4179b-ea47-4bc4-b9d3-a3a4e7df06bf@googlegroups.com> <0163eae2-3f35-4b96-a292-87a2fe3d3b03@googlegroups.com> <ldgf0i$quu$1@dont-email.me> |
On 2/12/2014 1:37 PM, markspace wrote:
> On 2/12/2014 12:38 AM, Ojesh Dugar wrote:
>> Basically, I am able to access Bugzilla Webservice API through java
>> code(xmlrpc) and in return i get a object of <<class
>> java.util.HashMap>>. According to Bugzilla documentation two items
>> are returned, bugs and faults, both are array of hashes and I want to
>> access these. Thanks.
>>
>
>
> Cast to a HashMap and iterate over all of its keys.
>
> (not tested):
>
> // create bug
> Object createResult = rpcClient.execute("Bug.search", new
> Object[]{bugMap});
> //createResult.toString();
>
> HashMap bugs = (HashMap)createResult;
> for( Object key : bugs.keySet() ) {
> System.out.println( "Key "+key.getClass().getName()
> + "= "+key
> + ", value "+ bugs.get( key ).getClass().getName()
> + "= "+ bugs.get( key )
> );
> }
>
> More info here:
>
> http://www.mkyong.com/java/how-to-loop-a-map-in-java/
This probably won't work as written. The original post said
createResult.toString() produced "[Ljava.lang.Object;@2ee5e48a",
indicating that rpcClient.execute() returns an Object[], that
is, an array of Object references. (To those surprised that an
array of Objects is itself an Object: Someday it will all make
sense, I promise.) So what he needs to do is cast the returned
value to an Object[]:
Object[] array = (Object[]) createResult;
... then iterate over the contents of the array:
for (Object obj : array) {
... and then (assuming the Objects in the array are HashMaps as
advertised, or in any case *some* kind of Maps):
Map bugs = (Map) obj;
... and *then* he can iterate over the entries, either in the
manner markspace shows or by using the key/value pairs directly:
for (Map.Entry ent : bugs.entrySet()) {
Object key = ent.getKey();
Object val = ent.getValue();
...
--
Eric Sosman
esosman@comcast-dot-net.invalid
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-10 22:59 -0800
Re: Unable to Overload toString for Object leif.roar@invalid.com (Leif Roar Moldskred) - 2014-02-11 02:40 -0600
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-11 01:03 -0800
Re: Unable to Overload toString for Object Lew <lewbloch@gmail.com> - 2014-02-11 15:49 -0800
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-12 00:38 -0800
Re: Unable to Overload toString for Object markspace <markspace@nospam.nospam> - 2014-02-12 10:37 -0800
Re: Unable to Overload toString for Object Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-02-12 13:57 -0500
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-12 20:24 -0800
Re: Unable to Overload toString for Object Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-02-13 08:29 -0500
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-12 20:58 -0800
Re: Unable to Overload toString for Object markspace <markspace@nospam.nospam> - 2014-02-12 21:29 -0800
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-13 00:59 -0800
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-11 01:06 -0800
Re: Unable to Overload toString for Object Ojesh Dugar <ojesh.u@gmail.com> - 2014-02-11 01:27 -0800
csiph-web