[json-lib-user] Problem converting to JSONArray to byte array
Brought to you by:
aalmiray
|
From: Jeevandra S. <jee...@ho...> - 2007-10-13 02:20:23
|
Hi,
I am having problem converting JSONArray to a byte array. I've used the fol=
lowing code in my program to process arrays in my bean. It seems to work fi=
ne for other primitive types but byte. Is there a reason for this? Many tha=
nks for your advice.
jeev
It returns
java.lang.IllegalArgumentException: argument type mismatch
at java.lang.reflect.Array.set(Native Method)
at net.sf.json.JSONArray.toArray(JSONArray.java:273)
at net.sf.json.JSONArray.toArray(JSONArray.java:225)
at spar.utility.JSONBeanProcessor.processArrays(JSONBeanProcessor.j=
ava:53)
at spar.utility.JSONBeanProcessor.getBean(JSONBeanProcessor.java:31=
)
at spar.testing.JSONTestRun.main(JSONTestRun.java:51)
private static void processArrays(Object bean, Class beanClass, JSONObject =
object){
=20
Field[] fields =3D beanClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
if(object.containsKey(field.getName())){
Object memberobject =3Dobject.get(field.getName());
if(JSONUtils.isArray(memberobject) && field.getType().i=
sArray()){
=20
try {
JSONArray array =3D JSONArray.fromObject(memberobje=
ct);
=20
//Problem with the following!
field.set(bean, field.getType().cast(JSONArray.toAr=
ray(array, field.getType().getComponentType())));
} catch (IllegalArgumentException ex) {
Logger.getLogger(JSONBeanProcessor.class.getName())=
.log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(JSONBeanProcessor.class.getName())=
.log(Level.SEVERE, null, ex);
}
=20
}//end if
=20
}//end if
=20
}
}
"If a man does not keep pace with his companions, perhaps it is because he =
hears a different drummer. Let him step to the music which he hears, howeve=
r measured or far away."=0A=
=0A=
H.D Thoreau
_________________________________________________________________
Publish your photos to your Space easily with Photo Gallery
http://www.get.live.com/wl/all=
|