我试图在Android应用程序中解析一个JSON数组,其中包含一些URL以加载到我的SQLite数据库中,下面是代码:
JSONArray pics = json.getJSONArray("bilder");
Gson gson = new Gson();
String obj = gson.toJson(pics);
String SQLiteDataBaseQuery = "INSERT INTO images_table (id,desc,imgurl) VALUES('"+i+"', '"+jr_desc+"', '"+obj+"');";
sqLiteDatabase.execSQL(SQLiteDataBaseQuery);
所以,现在我想从我的DB中调用信息:
Cursor cursor;
Array_links = new ArrayList<String>();
SQLiteGallery sqLiteHelper;
SQLiteDatabase sqLiteDatabase;
sqLiteHelper = new SQLiteGallery(this);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
cursor = sqLiteDatabase.rawQuery("SELECT * FROM "+SQLiteGallery.TAB_NAME+"", null);
cursor.moveToPosition(0);
Array_links.add(cursor.getString(cursor.getColumnIndex(SQLiteGallery.table_imgurl)));
Gson gson = new Gson();
Type type = new TypeToken<List<String>>().getType();
List<String> img_urls = gson.fromJson(Array_links,type);
for(String url : img_urls)
{
System.out.println(url);
}
Android Studio给我的错误如下:
TypeToken在“com.google.gson.reflect.TypeToken”中具有受保护的访问权限
Cursor cursor;
String urls;
SQLiteGallery sqLiteHelper;
SQLiteDatabase sqLiteDatabase;
sqLiteHelper = new SQLiteGallery(this);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
cursor = sqLiteDatabase.rawQuery("SELECT * FROM
"+SQLiteGallery.TAB_NAME+"", null);
cursor.moveToPosition(0);
urls =
cursor.getString(cursor.getColumnIndex(SQLiteGallery.table_imgurl));
Gson gson = new Gson();
Type type = new TypeToken<List<String>>(){}.getType();
List<String> img_urls = gson.fromJson(urls,type);
for(String url : img_urls)
{
System.out.println(url);
}
您忘记了{}
,您的代码是:
Type type = new TypeToken<List<String>>().getType();
应该是:
Type type = new TypeToken<List<String>>(){}.getType();
我有这个代码: 我试过这个: 但不管用。这是一个例外:
问题内容: 我有以下代码: 它将字符串转换为对象的。但是,现在我想让它具有在运行时定义的动态类型(而不仅仅是)。 所述的项目类型将与被定义反射。 我尝试了这个: 但这是行不通的。这是例外: 问题答案: 你提出的语法无效。下列 之所以无效,是因为你试图传递期望类型名称的方法调用。 下列 由于泛型(类型擦除)和反射的工作方式,因此无法实现。整个TypeToken黑客工作,因为以下 返回表示该类表示的实
我有一个来自服务器的JSON字符串,我无法控制它 我通过编程使用jsonschema2pojo库生成了Java类 我正在使用GSON将JSON反序列化到我的Java对象中。 下面是JSON的一个例子。 “50”子类实际上只是18个类中的一个,它们的名称类似于一个数字 当jsonschema2pojo生成Java类时,可以理解它会在前面加一个下划线来创建类名(所以,_50)。 jsonschema2
无法从自定义类获取泛型类型列表(Turns): 它说:
我有一个类,它用这个函数反序列化泛型的ArrayList,就像这个线程的第一个答案中描述的:Java抽象类函数泛型类型 Eclipse要求我强制转换TypeToken,结果如下(sinde fromJson的函数需要一个类型,而不是一个TypeToken) 结果我得到了这个错误: 在gson用户手册中,他们告诉您这是调用函数的正确方式 我看不出我做错了什么(如果它是一个有效的答案,为什么我会得到这
我已经编写了整型适配器,并用作注释来实现以下输出,但在gson库中编写的代码完全不允许使用注释配置进行空处理。 如果我取消注释1,2,4行和注释3行,那么我仍然没有实现我的愿望输出。 当我调试第189行的库代码(给定的屏幕截图)时,没有到达我的自定义适配器代码,因此空处理无法使用注释。有没有其他方法可以根据注释配置实现所需的输出? 期望输出: 猫科动物 - "" (用作注释并具有空值) phone