嗨,伙计们,我有一个问题,期待一个字符串,但是BEGIN_OBJECT,我找不到一个解决方案,已经浏览了2天了,需要帮助,以解决这个问题,谢谢
我将json内容存储在一个DB上,但在我的json上我得到了一个嵌套数组,
这是我的json文件中的1项
[
{
"id": "355",
"indicaciones": "text",
"efectos_secundarios": "text",
"contraindicaciones": "",
"precauciones_advertencias": "text",
"interacciones": "",
"nombre_principio_activo": "Decoquinato",
"especies": [
{
"especies_id": "1"
},
{
"especies_id": "2"
},
{
"especies_id": "3"
},
{
"especies_id": "4"
},
{
"especies_id": "9"
}
]
}
]
private int id;
private String indicaciones;
private String dosis_via_administracion;
private String efectos_secundarios;
private String contraindicaciones;
private String precauciones_advertencias;
private String nombre_principio_activo;
private String especies;
我的api
@GET("formulario.txt")
Call<List<FormularioModel>> getFormularios();
这是我的改装,在这里我失去了我的思想
//store formilarion on database
public void storeFormulariosToDb(){
Retrofit retrofitCat = new Retrofit.Builder()
.baseUrl(ApiForm.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiForm apicat = retrofitCat.create(ApiForm.class);
Call<List<FormularioModel>> callCat = apicat.getFormularios();
callCat.enqueue(new Callback<List<FormularioModel>>() {
@Override
public void onResponse(Call<List<FormularioModel>> callCat, Response<List<FormularioModel>> response) {
List<FormularioModel> obtenercate =db.getALLFormulario();
List<FormularioModel> cat = response.body();
if(obtenercate.size() < cat.size()){
for(int i = 0; i < cat.size(); i++){
FormularioModel cat1 = new FormularioModel(
cat.get(i).getId(),
cat.get(i).getIndicaciones(),
cat.get(i).getDosis_via_administracion(),
cat.get(i).getEfectos_secundarios(),
cat.get(i).getContraindicaciones(),
cat.get(i).getPrecauciones_advertencias(),
cat.get(i).getNombre_principio_activo(),
cat.get(i).getEspecies()); // Here is my problem
db.createFormularios(cat1);
}
}
}
@Override
public void onFailure(Call<List<FormularioModel>> callCat, Throwable t) {
Log.e("obtener formulario", t.getMessage()); }
});
}
这是我要存储到db的DBHelper
public long createFormularios(FormularioModel itemFORM){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put(FORMULARIO_ID, itemFORM.getId());
valores.put(FORMULARIO_INDICA, itemFORM.getIndicaciones());
valores.put(FORMULARIO_VIA, itemFORM.getDosis_via_administracion());
valores.put(FORMULARIO_EFECT, itemFORM.getEfectos_secundarios());
valores.put(FORMULARIO_CONTRA, itemFORM.getContraindicaciones());
valores.put(FORMULARIO_PRECA, itemFORM.getPrecauciones_advertencias());
valores.put(FORMULARIO_NOMBRE, itemFORM.getNombre_principio_activo());
valores.put(FORMULARIO_ESPECIE, itemFORM.getEspecies());
long formulario_id = db.insert(TABLE_FORMULARIOS, null, valores);
return formulario_id;
}
public List<FormularioModel> getALLFormulario(){
List<FormularioModel> forms = new ArrayList<>();
String selectQuery = " SELECT * FROM "
+ TABLE_FORMULARIOS
+ " ORDER BY "
+ FORMULARIO_NOMBRE + " ASC";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery,null);
if(c.moveToFirst()){
do{
FormularioModel t = new FormularioModel();
t.setId(c.getInt(c.getColumnIndex(FORMULARIO_ID)));
t.setIndicaciones(c.getString(c.getColumnIndex(FORMULARIO_INDICA)));
t.setDosis_via_administracion(c.getString(c.getColumnIndex(FORMULARIO_VIA)));
t.setEfectos_secundarios(c.getString(c.getColumnIndex(FORMULARIO_EFECT)));
t.setContraindicaciones(c.getString(c.getColumnIndex(FORMULARIO_CONTRA)));
t.setPrecauciones_advertencias(c.getString(c.getColumnIndex(FORMULARIO_PRECA)));
t.setNombre_principio_activo(c.getString(c.getColumnIndex(FORMULARIO_NOMBRE)));
t.setEspecies(c.getString(c.getColumnIndex(FORMULARIO_ESPECIE)));
forms.add(t);
} while (c.moveToNext());
}
return forms;
}
您的模型
类特殊
没有将其对象的
列表
字符串化
在模型中,将
private String species;
更改为private list
并创建一个名为species
的类,如下所示
public class Especies {
private String especies_id;
...
}
问题内容: 我已经声明了公共静态数组的名称和ID: 但是说: 我不知道怎么了 是我声明变量的方式还是写的方法? 问题答案: 您在静态String数组和传递给该方法的本地String变量之间发生冲突。 最好的解决方案是使用不同的名称。这将使代码更容易理解。 如果仍然坚持使用相同的名称,则可以通过使用类名称访问静态数组来解决名称冲突: 这同样适用于您的int数组和int变量。
我试图从str2参数创建一个新的索引数组,但是得到了这个错误:“array required,but string found。”我正在学习Java,只会轻松地用JavaScript写作。有人能解释一下这个错误信息是什么意思吗?
问题内容: 我想要一个带字符串并返回一个数组的Python函数,该数组中的每个项目都是字符,或者是这种类型的另一个数组。嵌套数组在输入字符串中以’(’开始,以’)’结尾。 因此,该函数将如下所示: 注意:我更喜欢纯功能的解决方案。 问题答案: 和,
问题内容: 我有一个如下的文本文件。我想读取给定值作为浮动列表。之后,我将进行一些计算。我使用了拆分功能和转换来浮动。但是我不能转换第一个和最后一个,因为这两个都有方括号。([])。它给出了如下错误。 文件格式 错误 我使用的代码 任何人都可以给我一个想法,如何将这些值读入如下所示的float数组中。 然后我可以调用X [1],X [999]之类的值 问题答案: 用于将每一行解析为浮点数列表: 每
我正在尝试将下面的对象转换为字符串数组 JSON对象 输入: 所需输出:
错误消息:我想它说我的输入是int,即使它们被设置为String。我该怎么办? RPSL. java: 57:错误:不兼容类型:字符串不能转换为int结果[user武器][computer武器]=possibleTie; RPSL。java:57:错误:不兼容的类型:无法将字符串转换为int 结果[UserBearm][ComputerBearm]=possibleTie;