BEGIN_ARRAY attendu mais BEGIN_OBJECT à la ligne 1 colonne 2
Je suis d'erreur ci-dessous.
Échoué pour parser du JSON en raison de: com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Attendu BEGIN_ARRAY mais a été
BEGIN_OBJECT à la ligne 1 de la colonne 2
Url Du Serveur
public static final String SERVER_URL = "https://maps.googleapis.com/maps/api/timezone/json?location=-37.8136,144.9631×tamp=1389162695&sensor=false";
Effectuer la demande
try {
//Create an HTTP client
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(SERVER_URL);
//Perform the request and check the status code
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
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<Post> postsList = Arrays.asList(gson.fromJson(reader,
Post[].class));
content.close();
for (Post p : postsList) {
System.out.println(p.timeZoneId);
}
} catch (Exception ex) {
System.out.println("Failed to parse JSON due to: " + ex);
}
} else {
System.out.println("Server responded with status code: "
+ statusLine.getStatusCode());
}
} catch (Exception ex) {
System.out
.println("Failed to send HTTP POST request due to: " + ex);
}
Post classe
public class Post {
public String timeZoneId;
public Post() {
}
}
Comment pourrais-je résoudre ce problème ?
source d'informationauteur Bishan
Vous devez vous connecter pour publier un commentaire.
Vous de l'état dans les commentaires que le retour JSON est-ce:
Vous dites Gson que vous avez un tableau de
Post
objets:Vous n'avez pas. Le JSON représente exactement une
Post
objet, et Gson est vous dire que.Changer votre code:
Réponse que vous obtenez en forme d'objet c'est à dire
Remplacer dessous de la ligne de code :
avec