Java 为什么我在这里得到一个JsonSyntaxException?
我遇到一个JSON解析错误。我的代码如下: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:
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);