我在尝试使用JsonConverter填充我的列表视图时遇到此异常
com . Google . gson . jsonsyntaxexception:Java . lang . illegalstateexception:应为BEGIN_ARRAY,但在第1行第1列path处为字符串
这是我的JsonConverter类:
public class JsonConverter<T> {
public JsonConverter() {
}
public ArrayList<T> toArrayList(String jsonString, Class<T> clazz) {
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("dd/MM/yy HH:mm:ss");
Gson gson = builder.create();
JsonConverter.ListParameterizedType type = new JsonConverter.ListParameterizedType(clazz);
ArrayList list = (ArrayList)gson.fromJson(jsonString, type);
return list;
}
public List<T> toList(String jsonString, Class<T> clazz) {
ArrayList list = this.toArrayList(jsonString, clazz);
return list;
}
private static class ListParameterizedType implements ParameterizedType {
private Type type;
private ListParameterizedType(Type type) {
this.type = type;
}
public Type[] getActualTypeArguments() {
return new Type[]{this.type};
}
public Type getRawType() {
return ArrayList.class;
}
public Type getOwnerType() {
return null;
}
}
}
这是我的模型类:
public class Product implements Serializable {
@SerializedName("pid")
public int pid;
@SerializedName("name")
public String name;
@SerializedName("qty")
public int qty;
@SerializedName("price")
public String description;
@SerializedName("image_url")
public String image_url;
@SerializedName("date")
public String date;
}
我这样称呼它:
private ArrayList<Product> productList;
@Override
public void processFinish(String s) {
productList = new JsonConverter<Product>().toArrayList(s, Product.class);
.
.
.
不知道我是不是做错了什么
我有一个案例,我从手写的json文件中读取。json是完美的。但是,发生了此错误。所以我从java对象写入json文件,然后从该json文件中读取。一切都很好。我看不出手写的json和java对象之间的任何区别。尝试超越比较,它没有看到任何区别。我终于注意到两个文件大小略有不同,我使用了winHex工具并在下面检测到额外的东西。因此,针对我的情况的解决方案是,复制好的json文件,将内容粘贴到其中并使用。
错误消息告诉您,在将json转换为java对象时,调用期望json中有一个数组,但得到了一个字符串。
理论收益:
[
"product" : {
"key" : "value"
}
]
再次检查您的json,它可能是字符串而不是对象
我想从改造中接收数据,并在 中设置它,但我有一个例外 改造。错误:com.google.gson。JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_$ 我必须做什么? 数据如下:
我试图使用从API返回的retfit和GSON解析字符串数组: 这是在特定情况下(情况2)响应的样子: 在本例(情况2)中,我从registfit/gson得到一个错误: 我这样调用API:
我怎么解决这个?
应为BEGIN\u对象,但在第1行第1列为字符串请帮助我,我遇到此错误 我的列表提供了从解析的json创建对象的类。Java语言 我的JSON: 使用GSON解析JSON的MainActivity代码。。。。。 错误:应为BEGIN\u对象,但在第1行第1列为字符串
我有以下JSON结构: 以下是我的: 下面是我的POJO类: 最后,这里是我正在进行网络调用的代码:
目前,我正在得到 com.google.gson.jsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第2列路径$处为BEGIN_ARRAY 请帮帮我.