我得到和错误当我执行
VehiculoCombustiblesResponseDTO respuesta= new Gson().fromJson(response.toString(), VehiculoCombustiblesResponseDTO.class);
错误是:
未处理的异常:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_OBJECT但BEGIN_ARRAY在第1行第52列路径$. f
这是 json 响应
{"a":5,"b":50,"c":23,"d":"12349","e":2,"f":[{"a":2,"b":"Premium"},{"a":1,"b":"Magna"}]}
我有这个班级
public class VehiculoCombustiblesResponseDTO {
private int a;
private int b;
/**
* VehiculoId
* @return
*/
public int getA() {
return a;
}
/**
* VehiculoId
* @return
*/
public void setA(int a) {
this.a = a;
}
/**
* CapacidadCombustible
* @return
*/
public int getB() {
return b;
}
/**
* CapacidadCombustible
* @return
*/
public void setB(int b) {
this.b = b;
}
/**
* KilometrajeInicial
* @return
*/
public int getC() {
return c;
}
/**
* KilometrajeInicial
* @return
*/
public void setC(int c) {
this.c = c;
}
/**
* NumeroEconomico
* @return
*/
public String getD() {
return d;
}
/**
* NumeroEconomico
* @return
*/
public void setD(String d) {
this.d = d;
}
/**
* TipoCombustibleId
* @return
*/
public int getE() {
return e;
}
/**
* TipoCombustibleId
* @return
*/
public void setE(int e) {
this.e = e;
}
/**
* TiposCombustible (Listado)
* @return
*/
public TiposCombustibleResponseDTO getF() {
return f;
}
/**
* TiposCombustible (Listado)
* @return
*/
public void setF(TiposCombustibleResponseDTO f) {
this.f = f;
}
private int c;
private String d;
private int e;
private TiposCombustibleResponseDTO f;
}
和这个其他
public class TiposCombustibleResponseDTO {
/**
* obtiene CombustibleId del servidor
* @return
*/
public int getA() {
return a;
}
/**
* Establece CombustibleId
* @param a
*/
public void setA(int a) {
this.a = a;
}
/**
* obtiene Descripcion del servidor
* @return
*/
public String getB() {
return b;
}
/**
* Estaclece Descripcion del servidor
* @param b
*/
public void setB(String b) {
this.b = b;
}
private int a;
private String b;
}
你对Gson说:给我这个JSON的对象,Gson找到了一个对象,但是JSON响应中的f
是一个数组,但是在你的类中这个字段是一个对象,所以这是不兼容的。
JSON对象和数组有显着区别:
这是JSON对象:
{ "firstName":"John", "lastName":"Doe" }
这是JSON数组:
[
{ "firstName":"John", "lastName":"Doe" },
{ "firstName":"Anna", "lastName":"Smith" },
{ "firstName":"Peter","lastName":"Jones" }
]
请注意以下括号:[]
解决方案:
将f
字段更改为数组:
private TiposCombustibleResponseDTO[] f;
假设我有以下课程:
这个json对象有时可能非常非常大,我想用GSON解析它,但我不太明白我的java对象的格式应该如何解析它们。 真正的肉在键中,第二个键是JSONArray。每个索引包含一个对象,每个对象可以包含一个键,该键也是一个json数组,在某些情况下可以包含json数组。 我有所有这些的模型,有不同的解析范式,但没有GSON的模型。由于内存限制,我现在需要使用GSON
问题内容: 我有以下情况: 在我的Query.xml中,我以这种方式编写了插入内容: 阅读mybatis结果地图指南后,我尝试在mybatis-config.xml文件中添加以下行: 但我一直收到以下错误: 谁能告诉我该如何设置? 问题答案: 中的属性需要引用结果映射的名称,而不是Java类型: 但是,如果作为单独的表存储在数据库中,则不支持嵌套插入。您将需要在Java中调用两个插入。Result
很抱歉标题太长,但我的问题如下; 我有这些课程; 和 和 如果只有断言它拥有的列表,我会使用以下自定义匹配器;
问题内容: 我有几个Javascript原型。最初,实例将仅填写ID,并带有一些其他数据的通用占位符信息。然后,我使用ID和对象类型(使用jQuery的AJAX函数)向服务器发送一条消息,然后服务器返回一个JSON对象,其中包含所有缺少的信息(但没有ID)。返回的对象中的变量与现有对象中的变量名称完全相同。 将其转移到现有的空对象中最简单的方法是什么?我想出了几种选择 将对象设置为等于返回的对象,
我试图从一个相当复杂的Java对象生成一个CSV文件。该对象是一个会话,具有一些属性,字符串和消息的列表,这些字符串和消息又具有一些属性,还有一个注释的列表,这些注释具有一些属性。 session类如下所示; 消息类如下所示; 事实上,开始认为(单一的)CSV可能不是解决这个问题的最佳方法。