@@ -770,47 +770,41 @@ private void SetFieldValue(Object targetObj, String fieldName, Object value) thr
770770 if (field != null )
771771 {
772772 Class fieldType = field .getType ();
773- if (IGxJSONSerializable .class .isAssignableFrom (field .getType ()))
774- {
775- Class [] cArg = new Class [1 ];
776- cArg [0 ] = String .class ;
777- Object fieldInstance = PrivateUtilities .getFieldValue (targetObj , fieldName );
778- Method mth ;
779- if (value instanceof JSONArray || value instanceof JSONObjectWrapper )
780- {
781- mth = field .getType ().getMethod ("FromJSONObject" , new Class []{Object .class });
782- mth .invoke (fieldInstance , new Object []{value });
783- }
784- else
785- {
786- mth = field .getType ().getMethod ("fromJSonString" , cArg );
787- mth .invoke (fieldInstance , new Object []{value .toString ()});
788- }
789-
790- PrivateUtilities .setFieldValue (targetObj , field .getName (), fieldInstance );
773+ Object fieldInstance = PrivateUtilities .getFieldValue (targetObj , fieldName );
774+ Method mth ;
775+ if (com .genexus .util .GXHashMap .class .isAssignableFrom (field .getType ())) {
776+ mth = field .getType ().getMethod ("fromJson" , new Class []{Object .class });
777+ mth .invoke (fieldInstance , new Object []{value });
791778 }
792- else
793- {
794- try
795- {
796- if (fieldType .isArray ())
797- {
798- Object tempArray = getArrayFieldValue (fieldType , value );
799- if (tempArray != null )
800- {
801- value = tempArray ;
802- }
779+ else {
780+ if (IGxJSONSerializable .class .isAssignableFrom (field .getType ())) {
781+ Class [] cArg = new Class [1 ];
782+ cArg [0 ] = String .class ;
783+ if (value instanceof JSONArray || value instanceof JSONObjectWrapper ) {
784+ mth = field .getType ().getMethod ("FromJSONObject" , new Class []{Object .class });
785+ mth .invoke (fieldInstance , new Object []{value });
786+ } else {
787+ mth = field .getType ().getMethod ("fromJSonString" , cArg );
788+ mth .invoke (fieldInstance , new Object []{value .toString ()});
803789 }
804- else {
805- if (fieldType == java .util .Date .class )
806- value = localUtil .ctot (value .toString (), 0 );
807- else
808- value = GXutil .convertObjectTo (value , fieldType );
790+
791+ PrivateUtilities .setFieldValue (targetObj , field .getName (), fieldInstance );
792+ } else {
793+ try {
794+ if (fieldType .isArray ()) {
795+ Object tempArray = getArrayFieldValue (fieldType , value );
796+ if (tempArray != null ) {
797+ value = tempArray ;
798+ }
799+ } else {
800+ if (fieldType == java .util .Date .class )
801+ value = localUtil .ctot (value .toString (), 0 );
802+ else
803+ value = GXutil .convertObjectTo (value , fieldType );
804+ }
805+ PrivateUtilities .setFieldValue (targetObj , field .getName (), value );
806+ } catch (Exception e ) {
809807 }
810- PrivateUtilities .setFieldValue (targetObj , field .getName (), value );
811- }
812- catch (Exception e )
813- {
814808 }
815809 }
816810 }
0 commit comments