@@ -105,12 +105,12 @@ public static <T1, T2 extends IRequestBuilder> JsonElement serialize(final BaseC
105105 */
106106 @ SuppressWarnings ("unchecked" )
107107 public static <T1 , T2 extends IRequestBuilder > BaseCollectionPage <T1 , T2 > deserialize (final JsonElement json , Type typeOfT , final ILogger logger ) throws JsonParseException {
108- if (json == null ) {
108+ if (json == null || ! json . isJsonArray () ) {
109109 return null ;
110110 }
111111 serializer = new DefaultSerializer (logger );
112- final JsonObject [] sourceArray = serializer . deserializeObject ( json .toString (), JsonObject []. class );
113- final ArrayList <T1 > list = new ArrayList <T1 >(sourceArray .length );
112+ final JsonArray sourceArray = json .getAsJsonArray ( );
113+ final ArrayList <T1 > list = new ArrayList <T1 >(sourceArray .size () );
114114 /** eg: com.microsoft.graph.requests.extensions.AttachmentCollectionPage */
115115 final String collectionPageClassCanonicalName = typeOfT .getTypeName ();
116116 /** eg: com.microsoft.graph.models.extensions.Attachment */
@@ -119,13 +119,16 @@ public static <T1, T2 extends IRequestBuilder> BaseCollectionPage<T1, T2> deseri
119119 .replace ("requests" , "models" );
120120 try {
121121 final Class <?> baseEntityClass = Class .forName (baseEntityClassCanonicalName );
122- for (JsonObject sourceObject : sourceArray ) {
123- Class <?> entityClass = serializer .getDerivedClass (sourceObject , baseEntityClass );
124- if (entityClass == null )
125- entityClass = baseEntityClass ;
126- final T1 targetObject = (T1 )serializer .deserializeObject (sourceObject .toString (), entityClass );
127- ((IJsonBackedObject )targetObject ).setRawObject (serializer , sourceObject );
128- list .add (targetObject );
122+ for (JsonElement sourceElement : sourceArray ) {
123+ if (sourceElement .isJsonObject ()) {
124+ final JsonObject sourceObject = sourceElement .getAsJsonObject ();
125+ Class <?> entityClass = serializer .getDerivedClass (sourceObject , baseEntityClass );
126+ if (entityClass == null )
127+ entityClass = baseEntityClass ;
128+ final T1 targetObject = (T1 )serializer .deserializeObject (sourceObject .toString (), entityClass );
129+ ((IJsonBackedObject )targetObject ).setRawObject (serializer , sourceObject );
130+ list .add (targetObject );
131+ }
129132 }
130133 /** eg: com.microsoft.graph.requests.extensions.AttachmentCollectionResponse */
131134 final String responseClassCanonicalName = collectionPageClassCanonicalName
0 commit comments