php - JSONException: Value Connected of type java.lang.String cannot be converted to JSONObject -
i'm working on android project data mysql database , show them in list view on android, have json error:
jsonexception: value connected of type java.lang.string cannot converted jsonobject
this source code:
connector class
import java.io.ioexception; import java.net.httpurlconnection; import java.net.malformedurlexception; import java.net.url; /** * created oclemy on 6/30/2016 programmingwizards channel , http://www.camposha.com. * role : establish connection server */ public class connector { public static object connect(string urladdress) { try { url url=new url(urladdress); httpurlconnection con= (httpurlconnection) url.openconnection(); //set con properties con.setrequestmethod("get"); con.setconnecttimeout(15000); con.setreadtimeout(15000); con.setdoinput(true); return con; } catch (malformedurlexception e) { e.printstacktrace(); return "error "+e.getmessage(); } catch (ioexception e) { e.printstacktrace(); return "error "+e.getmessage(); } }
downloader class
import android.app.progressdialog; import android.content.context; import android.os.asynctask; import android.widget.listview; import android.widget.toast; import java.io.bufferedinputstream; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.net.httpurlconnection; /** * created oclemy on 6/30/2016 programmingwizards channel , http://www.camposha.com. */ public class downloader extends asynctask<void,void,string>{ context c; string urladdess; listview lv; progressdialog pd; public downloader(context c, string urladdess, listview lv) { this.c = c; this.urladdess = urladdess; this.lv = lv; } @override protected void onpreexecute() { super.onpreexecute(); pd=new progressdialog(c); pd.settitle("retrieve"); pd.setmessage("retrieving..please wait"); pd.show(); } @override protected string doinbackground(void... params) { return this.downloaddata(); } @override protected void onpostexecute(string jsondata) { super.onpostexecute(jsondata); pd.dismiss(); if(jsondata.startswith("error")) { toast.maketext(c,"unsuccessful "+jsondata,toast.length_short).show(); }else { //parse new dataparser(c,jsondata,lv).execute(); } } private string downloaddata() { object connection=connector.connect(urladdess); if(connection.tostring().startswith("error")) { return connection.tostring(); } try { httpurlconnection con= (httpurlconnection) connection; inputstream is=new bufferedinputstream(con.getinputstream()); bufferedreader br=new bufferedreader(new inputstreamreader(is)); string line; stringbuffer jsondata=new stringbuffer(); while ((line=br.readline()) != null) { jsondata.append(line+"n"); } br.close(); is.close(); return jsondata.tostring(); } catch (ioexception e) { e.printstacktrace(); return "error "+e.getmessage(); } } }
dataparser class
import android.app.progressdialog; import android.content.context; import android.os.asynctask; import android.view.view; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.listview; import android.widget.toast; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.util.arraylist; /** * created oclemy on 6/30/2016 programmingwizards channel , http://www.camposha.com. */ public class dataparser extends asynctask<void,void,boolean> { context c; string jsondata; listview lv; progressdialog pd; arraylist<string> spacecrafts=new arraylist<>(); public dataparser(context c, string jsondata, listview lv) { this.c = c; this.jsondata = jsondata; this.lv = lv; } @override protected void onpreexecute() { super.onpreexecute(); pd=new progressdialog(c); pd.settitle("parse"); pd.setmessage("pasring..please wait"); pd.show(); } @override protected boolean doinbackground(void... params) { return this.parsedata(); } @override protected void onpostexecute(boolean result) { super.onpostexecute(result); pd.dismiss(); if(result) { arrayadapter adapter=new arrayadapter(c,android.r.layout.simple_list_item_1,spacecrafts); lv.setadapter(adapter); lv.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { toast.maketext(c, spacecrafts.get(position), toast.length_short).show(); } }); } } private boolean parsedata() { try { jsonarray ja = new jsonarray(jsondata); jsonobject jo; spacecrafts.clear(); (int = 0; < ja.length(); i++) { jo = ja.getjsonobject(i); string name = jo.getstring("name"); spacecrafts.add(name); } return true; } catch (jsonexception e) { e.printstacktrace(); } return false; } }
main class
import android.os.bundle; import android.support.design.widget.floatingactionbutton; import android.support.design.widget.snackbar; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.view; import android.view.menu; import android.view.menuitem; import android.widget.listview; import com.tutorials.hp.mysqlhttpgetlistview.m_mysql.downloader; public class mainactivity extends appcompatactivity { final static string urladdress="http://10.0.2.2/android/spacecraft_select_images.php"; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); final listview lv= (listview) findviewbyid(r.id.lv); floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fab); fab.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { new downloader(mainactivity.this,urladdress,lv).execute(); } }); } }
php code
<?php $servername = "localhost"; $username = "root"; $password = ""; $bb="test"; // create connection $conn = new mysqli($servername, $username, $password,$bb); // check connection if ($conn->connect_error) { die("connection failed: " . $conn->connect_error); } echo "connected successfully"; $sql="select rpm cours"; $res=mysqli_query($conn,$sql); if ($res) { while($row=mysqli_fetch_array($res)) { $data[]=$row; } print(json_encode($data)); //echo "connected successful"; } mysqli_close($conn); ?>
but receive error:
rg.json.jsonexception: value connected of type java.lang.string cannot converted jsonobject
at line
at connector.dataparser.parsedata(dataparser.java:63): jsonarray ja = new jsonarray(jsondata);
Comments
Post a Comment