Message d'erreur :string cannot be converted to JSONObjet

jasminejas - 15 mars 2016 à 09:36
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 15 mars 2016 à 10:22
Bonjour,

J'essaye d’insérer des données a partir d'un client android vers un serveur externe et avec mon code j’insère des ligne dans la table de ma base mais sont vide (les données sont invisible ) et j'ai le message d 'erreur dans logcat.




Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject



mon code java : la classe de création de produit et la suivante
 
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;
/**
  • Created by ${kahina} on 09/03/2016. */public class AjouterClient extends Activity { // Progress Dialog private ProgressDialog pDialog; JSONParser jsonParser = new JSONParser(); EditText inputpid; EditText inputName; EditText inputPrice; EditText inputDesc; // url to create new product private static String url_create_product = "http://192.168.8.16/createPRODUCT.php"; // JSON Node names private static final String TAG_SUCCESS = "success"; public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ajouterclient); // Edit Text inputpid = (EditText) findViewById(R.id.btnpid); inputName = (EditText) findViewById(R.id.btnname); inputPrice = (EditText) findViewById(R.id.btnprice); inputDesc = (EditText) findViewById(R.id.btnprice); // C Button btnCreateProduct = (Button) findViewById(R.id.btnvalider); // btnCreateProduct.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new CreateNewProduct().execute(); } }); } class CreateNewProduct extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(AjouterClient.this); pDialog.setMessage("Creating Product.."); pDialog.setIndeterminate(false); pDialog.setCancelable(true); pDialog.show(); } /** * Creating product * */ protected String doInBackground(String... args) { String pid =inputpid.getText().toString(); String name = inputName.getText().toString(); String price = inputPrice.getText().toString(); String description = inputDesc.getText().toString(); // List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair ("PID",pid)); params.add(new BasicNameValuePair("NAME", name)); params.add(new BasicNameValuePair("PRICE", price)); params.add(new BasicNameValuePair("DESCRIPTION", description)); // getting JSON Object // Note that create product url accepts POST method JSONObject json = jsonParser.makeHttpRequest(url_create_product, "POST", params); // check log cat fro response Log.d("Create Response", json.toString()); // check for success tag try { int success = json.getInt(TAG_SUCCESS); if (success == 1) { // successfully created product Intent i = new Intent(getApplicationContext(), Afficher_listCL.class); startActivity(i); // closing this screen finish(); } } catch (JSONException e) { e.printStackTrace(); } return null; } /** * After completing background task Dismiss the progress dialog * **/ protected void onPostExecute(String file_url) { pDialog.dismiss(); } } }


Et voici la classe JSONParser :







import android.util.Log;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
  • Created by ${kahina} on 09/03/2016. */public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } // function get json from url // by making HTTP POST or GET mehtod public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { // Making HTTP request try { // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }else if(method == "GET"){ // request method is GET DefaultHttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?" + paramString; HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj;} }


svp quelqu'un peut m’orientè et me dire comment réglé le problème de la conversion de string to jsonobjet

1 réponse

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
15 mars 2016 à 10:22
Hello,

Tu essaies de faire rentrer un carré dans un rond...
Sais-tu où est le problème? As-tu testé ton code en mode debug pas-à-pas? (j'ai l'impression de me répéter...)
0
Rejoignez-nous