Java 为什么我在这里得到一个JsonSyntaxException?

Java 为什么我在这里得到一个JsonSyntaxException?,java,android,json,gson,json-deserialization,Java,Android,Json,Gson,Json Deserialization,我遇到一个JSON解析错误。我的代码如下: try { //Read the server response and attempt to parse it as JSON Reader reader = new InputStreamReader(content); GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setDateFormat("M/d/yy hh:

我遇到一个JSON解析错误。我的代码如下:

try {
        //Read the server response and attempt to parse it as JSON
        Reader reader = new InputStreamReader(content);

        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.setDateFormat("M/d/yy hh:mm a");
        Gson gson = gsonBuilder.create();

        List<JsonObject> posts = (List) gson.fromJson(reader, JsonObject.class);

        Log.e(TAG, "Results Size: " + posts.size());

        //  for(int i=0; i<posts.size(); i++){
        //      Log.e(TAG, "Checking: " + posts.get(i).title());
        //  }

        content.close();

} catch (Exception ex) {
    Log.e(TAG, "Failed to parse JSON due to: " + ex);
}
试试看{
//读取服务器响应并尝试将其解析为JSON
Reader Reader=新的InputStreamReader(内容);
GsonBuilder GsonBuilder=新的GsonBuilder();
gsonBuilder.setDateFormat(“M/d/yy hh:mm a”);
Gson-Gson=gsonBuilder.create();
List posts=(List)gson.fromJson(reader,JsonObject.class);
Log.e(标签,“结果大小:+posts.Size());

//对于(int i=0;i,正如它在异常行中提到的,您的
JSON
[
开始,因此它表示
JSON数组
而不是
JSON对象
,但是
JSON
必须以
JSON对象
开始。因此,将
JSON
文件包装为
{/code>耦合(添加
{
到开头和
}
到结尾)。它应该可以解决这个问题。

正如它在例外行中提到的,您的
JSON
[
因此它表示一个
JSON数组
而不是
JSON对象
,但是
JSON
必须以
JSON对象
开头。所以将
JSON
文件包装成
{}
对(将
{
添加到开头,将
}
添加到结尾)。它应该可以解决问题。

我认为您的问题源于这样一个事实:您正试图反序列化为泛型类型(一个
列表
)。在这种情况下,您需要将
类型
而不是
传递到
fromJson()
方法。请尝试以下操作:

Type type = new TypeToken<List<JsonObject>>(){}.getType();
List<JsonObject> posts = gson.fromJson(reader, type);
Type Type=new-TypeToken(){}.getType();
List posts=gson.fromJson(reader,type);

我认为您的问题源于您试图反序列化为泛型类型(一个
列表
)。在这种情况下,您需要将
类型
而不是
传递给
fromJson()
方法。请尝试以下操作:

Type type = new TypeToken<List<JsonObject>>(){}.getType();
List<JsonObject> posts = gson.fromJson(reader, type);
Type Type=new-TypeToken(){}.getType();
List posts=gson.fromJson(reader,type);