2017-04-04 141 views
0

我得到这个例外试图填充我的ListView与JsonConverter

com.google.gson.JsonSyntaxException:java.lang中。 IllegalStateException异常:预期BEGIN_ARRAY但在第1行1条路径字符串$

这是我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; 
     } 
    } 
} 

这是我的C型姑娘:

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); 
. 
. 
. 

,如果我做错了这里

+0

你可以张贴的JSON? – jemsnaban

回答

0

错误消息告诉你不知道的是,虽然JSON转换为一个java对象的调用预期在json中的一个数组,但得到了一个字符串。

预期收益:

[ 
    "product" : { 
     "key" : "value" 
    } 
] 

再次检查您的JSON,它可能是一个字符串,而不是一个对象

+0

我的数据是在mysql数据库中,我下载它们与AsynkTask,然后将它们传递到我的processFinish方法内部的JsonConverter ..我没有问题,当我使用Eclipse IDE时,我得到这个错误,当我使用Android工作室,其奇怪的 – DastakWall

+0

你可能需要[这](http://stackoverflow.com/questions/16654042/gson-expected-begin-array-but-was-begin-object) – jemsnaban

相关问题