Bonjour à tous,
Je développe une application Android qui interroge une base de donnée MySQL, j'ai donc fait un web service qui renvoi les réponses au format json grâce à vos bons conseils.

Le Json ressemble à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
["Concours DEsign","D\u00e9roulement des \u00e9preuves","Test BLoc"]
J'ai une classe qui recupère le Json et le convertit en Objet UnArticle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
package com.example.myipsa;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import com.google.gson.Gson;
import android.util.Log;
 
public class ServerAccess {
 
	private Gson gson;
 
	//Convert an inputstream to a string
	public static String convertStreamToString(InputStream is)
    {
    	BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    	StringBuilder sb = new StringBuilder();
 
    	String line = null;
    	try {
    		while ((line = reader.readLine()) != null) {
    			sb.append(line + "\n");
    		}
    	}
    	catch (IOException e) {
    		Log.e("PHP Client","Error : "+e.getMessage());
    	}
    	finally {
    		try {
    			is.close();
    		} catch (IOException e1) {
    			Log.e("PHP Client","Error : "+e1.getMessage());
    		}
    	}
    	return sb.toString();
    }
 
	//Get the response form the server as an object
	public Object getResponseObject(ArrayList Parameters,Class c)
	{
		try{
			//Create a HTTP Client
			HttpClient httpclient = new DefaultHttpClient();
 
			//Create and object to Post values to the server
			//The url is specified in the Constants class to increase modifiability
			HttpPost httppost = new HttpPost(Constants.SERVICE_URL);
 
			//Set the attributes to be posted as Parameters
			httppost.setEntity(new UrlEncodedFormEntity(Parameters));
 
			//Execute the post and get the response
			HttpResponse response = httpclient.execute(httppost);
 
			//Get the response as ans entity
			HttpEntity entity = response.getEntity();
 
			//Get the content of the response as a stream
			InputStream stream=entity.getContent();
 
			//Convert the stream to a GSON object
	        String result= convertStreamToString(stream);
	        //Log.e("MyIPSA", result); 
 
	        gson = new Gson();
	        //Convert the respose string to a object of the given type
	        //Here Object class is used so that we can use the same method to get any
	        //class's object as response
			Object responseObject=gson.fromJson(result, c);
			//Return the object
	        return responseObject;
		}catch(Exception e){
			Log.e("MyIPSA", "Error in http connection"+e.toString());
			return null;
		}
	}
 
 
	//Get the employees
	public UnArticle[] getTitreArticle()
	{
		//Create the arraylist to set the parameters of the post
		ArrayList<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
		//Set the method name
		parameters.add(new BasicNameValuePair("method","getTitreArticle"));
 
		//Get the array as the result
		UnArticle[] o= (UnArticle[])getResponseObject(parameters,UnArticle[].class);
		return o;
	}
}
Ma classe UnArticle est celle-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
package com.example.myipsa;
 
public class UnArticle {
	public String nom;
}
Mais la fonction "gson.fromJson(result, c)" me renvoi un :
Expected BEGIN_OBJECT but was STRING

Alors que si j'ai bien compris elle est censé prendre un string en entré et donnée un objet en sortit.

Merci d'avance pour votre aide précieuse