Вам необходимо создать ObjectTypeHelper класс.
public static class ObjectTypeHelper
{
public static T Cast<T>(this Java.Lang.Object obj) where T : class
{
var propertyInfo = obj.GetType().GetProperty("Instance");
return propertyInfo == null ? null : propertyInfo.GetValue(obj, null) as T;
}
}
И HomePojo Класс должен наследоваться от ObjectTypeHelper , затем попытаться выполнить следующий код:
GoogleGson.JsonObject dataObject = jObject.GetAsJsonObject(AppGlobal.TAG_JSON_DATA_OBJECT);
mHomePojo = mGson.FromJson(dataObject.AsJsonObject, Java.Lang.Class.FromType(typeof(HomePojo)).Cast<HomePojo>();;
Если не работает, возможно, Gson все еще совместим с xamarin android.
WorkaRound :
Почему бы не использовать Newtonsoft.Json для десериализации вашего json.
public class RootObject
{
public int id { get; set; }
public string name { get; set; }
public Type type { get; set; }
public List<string> options { get; set; }
}
Тогда вы сможете десериализовать свой JSON:
List<RootObject> myData = JsonConvert.DeserializeObject<List<RootObject>>(json);